GBK UTF-8 ASCLL url编码集合

目录

GBK

基本含义:

GBK 编码标准:

UTF-8

字符集

ASCLL

ASCII 字符集

ASCII 可打印的字符

ASCII 设备控制字符

 URL编码

编码规则

编码表


GBK

GBK全称《汉字内码扩展规范》(GBK即“国标”、“扩展”汉语拼音的第一个字母,英文名称:Chinese Internal Code Specification) ,中华人民共和国全国信息技术标准化技术委员会1995年12月1日制订,国家技术监督局标准化司、电子工业部科技与质量监督司1995年12月15日联合以技监标函1995 229号文件的形式,将它确定为技术规范指导性文件。2000年已被GB18030-2000《信息交换用 汉字编码字符集 基本集的扩充》国家强制标准替代。 2005年GB18030-2005发布,替代了GB18030-2000。

基本含义:

GBK 向下与 GB 2312 编码兼容,向上支持 ISO 10646.1国际标准,是前者向后者过渡过程中的一个承上启下的产物。ISO 10646 是国际标准化组织 ISO 公布的一个编码标准,即 Universal Multilpe-Octet Coded Character Set(简称UCS),大陆译为《通用多八位编码字符集》,台湾译为《广用多八位元编码字元集》,它与 Unicode 组织的 Unicode 编码完全兼容。ISO 10646.1 是该标准的第一部分《体系结构与基本多文种平面》。我国 1993 年以 GB 13000.1 国家标准的形式予以认可(即 GB 13000.1 等同于 ISO 10646.1)。

GBK编码,是在GB2312-80标准基础上的内码扩展规范,使用了双字节编码方案,其编码范围从8140至FEFE(剔除xx7F),共23940个码位,共收录了21003个汉字,完全兼容GB2312-80标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。GBK编码方案于1995年10月制定, 1995年12月正式发布,中文版的WIN95、WIN98、WINDOWS NT以及WINDOWS 2000、WINDOWS XP、WIN 7等都支持GBK编码方案。

GBK 编码标准:

《汉字内码扩展规范》(GBK) 于1995年制定

    兼容GB2312、GB13000-1、BIG5 编码中的所有汉字,使用双字节编码

    编码空间为 0x8140~0xFEFE,共有 23940 个码位,
    其中 GBK1 区和 GBK2 区也是 GB2312 的编码范围。收录了 21003 个汉字。

      GBK向下与 GB 2312 编码兼容,向上支持 ISO 10646.1国际标准,是前者向后者过渡过程中的一个承上启下的产物。
      ISO 10646 是国际标准化组织ISO 公布的一个编码标准,即 Universal Multilpe-Octet Coded Character Set(简称UCS)
      大陆译为《通用多八位编码字符集》,台湾译为《广用多八位元编码字元集》,它与 Unicode 组织的Unicode编码完全兼容。
      ISO 10646.1 是该标准的第一部分《体系结构与基本多文种平面》。
      我国 1993 年以 GB 13000.1 国家标准的形式予以认可(即 GB 13000.1 等同于 ISO 10646.1)。
    

  GBK向下与 GB 2312 编码兼容,向上支持 ISO 10646.1国际标准,是前者向后者过渡过程中的一个承上启下的产物。
  ISO 10646 是国际标准化组织ISO 公布的一个编码标准,即 Universal Multilpe-Octet Coded Character Set(简称UCS)
  大陆译为《通用多八位编码字符集》,台湾译为《广用多八位元编码字元集》,它与 Unicode 组织的Unicode编码完全兼容。
  ISO 10646.1 是该标准的第一部分《体系结构与基本多文种平面》。
  我国 1993 年以 GB 13000.1 国家标准的形式予以认可(即 GB 13000.1 等同于 ISO 10646.1)。

    作用:它是GB2312的扩展,加入对繁体字的支持,兼容GB2312。

    位数: 使用 2个字节表示,可表示 21886个字符。

    范围: 高字节从81到FE,低字节从40到FE。

    汉子占用两个字节,英文占用一个字节
 

UTF-8

UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用。因此,它逐渐成为电子邮件网页及其他存储或传送文字的应用中,优先采用的编码。

 

UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。

UTF-8的编码规则很简单,只有二条:

1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。

2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。
 

字符集

UTF-8编码规则:如果只有一个字节则取值为\x00-\x7F。其余字节按长度进行以下拓展:

UTF-8由4种编码方式实现,即UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4 [2] 。其中:

UTF8, 16进制编码表

UTF8-1

\x00-\x7F

UTF8-2

\xC2-\xDF \x80-\xBF

UTF8-3

\xE0 \xA0-\xBF \x80-\xBF

\xE1-\xEC \x80-\xBF \x80-\xBF

\xED \x80-\x9F \x80-\xBF

\xEE-\xEF \x80-\xBF \x80-\xBF

UTF8-4

\xF0 \x90-\xBF \x80-\xBF \x80-\xBF

\xF1-\xF3 \x80-\xBF \x80-\xBF \x80-\xBF

\xF4 \x80-\x8F \x80-\xBF \x80-\xBF

注:每种编码可能有多个编码范围,每个编码范围间,以空格作为每个字节的分隔符。例如UTF8-3的第一个编码,其第一个字节取值必须为\xE0,第二个字节范围为\xA0-\xBF,第三个字节为\x80-\xBF。

下表总结了编码规则,字母x表示可用编码的位。

Unicode符号范围 | UTF-8编码方式
(十六进制) | (二进制)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

下面,以汉字“严”为例,演示如何实现UTF-8编码。

已知“严”的unicode是4E25(100111000100101),根据上表,可以发现4E25处在第三行的范围内(0000 0800-0000 FFFF),因此“严”的UTF-8编码需要三个字节,即格式是“1110xxxx 10xxxxxx 10xxxxxx”。然后,从“严”的最后一个二进制位开始,依次从后向前填入格式中的x,多出的位补0。这样就得到了,“严”的UTF-8编码是“11100100 10111000 10100101”,转换成十六进制就是E4B8A5。

ASCLL

ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符。

ASCII 字符集

ASCII ,它的全称是"美国信息交换标准代码"。它设计于60年代早期,是计算机和诸如打印机、磁带驱动器之类的硬件设备的标准字符集。

ASCII 是 7 比特字符集,包含了 128 个不同的字符值。

ASCII 支持 0-9 的数字,A-Z大写和小写英文字母,以及一些特殊字符。

被广泛使用于现代计算机、HTML和因特网上的字符集都是基于 ASCII 。

以下表格列举了128个 ASCII 字符以及对应的 HTML 实体编码。

ASCII 可打印的字符

字符编号描述
32空格(space)
!33感叹号(exclamation mark)
"34引号(quotation mark)
#35数字符号(number sign)
$36美元符号(dollar sign)
%37百分比符号(percent sign)
&38& 符号(ampersand)
'39撇号(apostrophe)
(40左括号(left parenthesis)
)41右括号(right parenthesis)
*42星号(asterisk)
+43加号(plus sign)
,44逗号(comma)
-45连字符(hyphen)
.46句号(period)
/47斜线(slash)
048数字 0
149数字 1
250数字 2
351数字 3
452数字 4
553数字 5
654数字 6
755数字 7
856数字 8
957数字 9
:58冒号(colon)
;59分号(semicolon)
<60小于号(less-than)
=61等于号(equals-to)
>62大于号(greater-than)
?63问号(question mark)
@64@ 符号(at sign)
A65大写字母 A
B66大写字母 B
C67大写字母 C
D68大写字母 D
E69大写字母 E
F70大写字母 F
G71大写字母 G
H72大写字母 H
I73大写字母 I
J74大写字母 J
K75大写字母 K
L76大写字母 L
M77大写字母 M
N78大写字母 N
O79大写字母 O
P80大写字母 P
Q81大写字母 Q
R82大写字母 R
S83大写字母 S
T84大写字母 T
U85大写字母 U
V86大写字母 V
W87大写字母 W
X88大写字母 X
Y89大写字母 Y
Z90大写字母 Z
[91左方括号(left square bracket)
\92反斜线(backslash)
]93右方括号(right square bracket)
^94插入符号(caret)
_95下划线(underscore)
`96重音符(grave accent)
a97小写字母 a
b98小写字母 b
c99小写字母 c
d100小写字母 d
e101小写字母 e
f102小写字母 f
g103小写字母 g
h104小写字母 h
i105小写字母 i
j106小写字母 j
k107小写字母 k
l108小写字母 l
m109小写字母 m
n110小写字母 n
o111小写字母 o
p112小写字母 p
q113小写字母 q
r114小写字母 r
s115小写字母 s
t116小写字母 t
u117小写字母 u
v118小写字母 v
w119小写字母 w
x120小写字母 x
y121小写字母 y
z122小写字母 z
{123左花括号(left curly brace)
|124竖线(vertical bar)
}125右花括号(right curly brace)
~126波浪线(tilde)

ASCII 设备控制字符

ASCII 控制字符(00-31,加上 127)最初被设计用来控制诸如打印机和磁带驱动器之类的硬件设备。

控制字符(除了水平制表符、换行、回车之外)在 HTML 文档中不起任何作用。

字符编号描述
NUL00空字符(null character)
SOH01标题开始(start of header)
STX02正文开始(start of text)
ETX03正文结束(end of text)
EOT04传输结束(end of transmission)
ENQ05请求(enquiry)
ACK06收到通知/响应(acknowledge)
BEL07响铃(bell)
BS08退格(backspace)
HT09水平制表符(horizontal tab)
LF10换行(line feed)
VT11垂直制表符(vertical tab)
FF12换页(form feed)
CR13回车(carriage return)
SO14不用切换(shift out)
SI15启用切换(shift in)
DLE16数据链路转义(data link escape)
DC117设备控制 1(device control 1)
DC218设备控制 2(device control 2)
DC319设备控制 3(device control 3)
DC420设备控制 4(device control 4)
NAK21拒绝接收/无响应(negative acknowledge)
SYN22同步空闲(synchronize)
ETB23传输块结束(end transmission block)
CAN24取消(cancel)
EM25已到介质末端/介质存储已满(end of medium)
SUB26替补/替换(substitute)
ESC27溢出/逃离/取消(escape)
FS28文件分隔符(file separator)
GS29组分隔符(group separator)
RS30记录分隔符(record separator)
US31单元分隔符(unit separator)
DEL127

删除(delete)

 URL编码

url编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器。不管哪种情况,在服务器端的表单输入格式样子象这样:

theName=Ichabod+Crane&gender=male&status=missing& ;headless=yes

 

编码规则

URL编码遵循下列规则: 每对name/value由&;符分开;每对来自表单的name/value由=符分开。如果用户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =,&;,和 % 这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是%5c。

编码表

backspace %08

I %49

v %76

ó %D3

tab %09

J %4A

w %77

&Ocirc; %D4

linefeed %0A

K %4B

x %78

&Otilde; %D5

creturn %0D

L %4C

y %79

&Ouml; %D6

space %20

M %4D

z %7A

&Oslash; %D8

! %21

N %4E

{ %7B

ù %D9

" %22

O %4F

| %7C

ú  %DA

# %23

P %50

} %7D

&Ucirc; %DB

$ %24

Q %51

~ %7E

ü %DC

% %25

R %52

¢ %A2

Y %DD

& %26

S %53

£ %A3

T %DE

' %27

T %54

¥ %A5

&szlig; %DF

( %28

U %55

| %A6

à %E0

) %29

V %56

§ %A7

á %E1

* %2A

W %57

&laquo; %AB

a %E2

+ %2B

X %58

&not; %AC

&atilde; %E3

, %2C

Y %59

ˉ %AD

&auml; %E4

- %2D

Z %5A

o %B0

&aring; %E5

. %2E

[ %5B

± %B1

&aelig; %E6

/ %2F

\ %5C

a %B2

&ccedil; %E7

0 %30

] %5D

, %B4

è %E8

1 %31

^ %5E

μ %B5

é %E9

2 %32

_ %5F

&raquo; %BB

ê %EA

3 %33

` %60

&frac14; %BC

&euml; %EB

4 %34

a %61

&frac12; %BD

ì %EC

5 %35

b %62

&iquest; %BF

í %ED

6 %36

c %63

à %C0

&icirc; %EE

7 %37

d %64

á %C1

&iuml; %EF

8 %38

e %65

&Acirc; %C2

e %F0

9 %39

f %66

&Atilde; %C3

&ntilde; %F1

: %3A

g %67

&Auml; %C4

ò %F2

; %3B

h %68

&Aring; %C5

ó %F3

< %3C

i %69

&AElig; %C6

&ocirc; %F4

= %3D

j %6A

&Ccedil; %C7

&otilde; %F5

> %3E

k %6B

è %C8

&ouml; %F6

%3F

l %6C

é  %C9

÷  %F7

@ %40

m %6D

ê %CA

&oslash; %F8

A %41

n %6E

&Euml; %CB

ù %F9

B %42

o %6F

ì  %CC

ú  %FA

C %43

p %70

í %CD

&ucirc; %FB

D %44

q %71

&Icirc; %CE

ü %FC

E %45

r %72

&Iuml; %CF

y %FD

F %46

s %73

D %D0

t %FE

G %47

t %74

&Ntilde; %D1

&yuml; %FF

H %48

u %75

ò %D2

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你的问题是如何让前端页面显示 UTF-8 文字,同时在查看页面源代码时显示 ASCII 转码字符串。 首先,在你的 HTML 页面中,需要添加以下 meta 标签,指定页面使用 UTF-8 编码: ```html <meta charset="UTF-8"> ``` 接下来,在你的后端代码中,需要确保你的数据在传输到前端时已经被正确编码UTF-8。在 PHP 中,可以使用 `utf8_encode` 函数将字符串转换为 UTF-8 编码: ```php $utf8_string = utf8_encode($ascii_string); ``` 在前端页面中,你可以直接使用这个 UTF-8 编码的字符串,例如: ```html <div><?php echo $utf8_string; ?></div> ``` 这样,页面就能正确显示 UTF-8 文字了。但是,如果你查看页面源代码,你会发现字符串仍然被转码成 ASCII 字符串。这是因为浏览器会将特定的字符转义成 HTML 实体,以确保页面的正确性和安全性。 如果你希望在查看页面源代码时看到原始的 UTF-8 字符串,你可以使用 JavaScript 将 HTML 实体转换回原始字符。以下是一个简单的 JavaScript 函数,可以将 HTML 实体转换为原始字符: ```javascript function decodeHtml(html) { var txt = document.createElement("textarea"); txt.innerHTML = html; return txt.value; } ``` 在你的前端页面中,你可以这样使用这个函数: ```html <div id="utf8-string"><?php echo $utf8_string; ?></div> <script> var utf8String = document.getElementById("utf8-string").innerHTML; var decodedString = decodeHtml(utf8String); console.log(decodedString); </script> ``` 这样,在控制台中,你就可以看到原始的 UTF-8 字符串了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值