社区
其它技术问题
帖子详情
unicode编码有几个版本,utf-8,utf-16和他是什么关系?
cdhit
2005-10-31 09:57:46
同上
...全文
1602
8
打赏
收藏
unicode编码有几个版本,utf-8,utf-16和他是什么关系?
同上
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ylgm44
2005-11-02
打赏
举报
回复
就是说,ascii字符在utf-8里面还是一样的,一个字节表示,超出ascii字符范围的,就用多字节表示,字节的数目由第一字节确定,最多6字节。如下:
utf-8:
1字节:0XXXXXXX(ascii)
2字节:110XXXXX 10XXXXXX
3字节:1110XXXX 10XXXXXX 10XXXXXX
4字节:11110XXX 10XXXXXX 10XXXXXX 10XXXXXX
5字节:。。。
utf-16:所有:XXXXXXXX XXXXXXXX
ascii:XXXXXXXX 00000000
fiftymetre
2005-11-02
打赏
举报
回复
Unicode定义了两种编码格式:UTF-8和UTF-16。UTF-8编码与ASCII向后兼容。任何合法的ASCII编码都会自动成为合法的UTF-8编码,使得将现有的ASCII数据库转换为Unicode数据库非常容易。UTF-8使用一个码点值来生成一个分布到一到四个字节上的位模式。
给定字符的UTF-8编码中的每个字节都被称为一个编码单元。标准ASCII字符集中字符的码点使用0x00到0x7F范围内的单一编码单元进行编码。大多数非亚洲文字用一个或两个编码单元(或字节)来表示每个字符。
在Unicode 3.1中,定义了大量新的增补字符,每个字符需要包含四个UTF-8编码单元。
第二种重要的编码格式是UTF-16,它使用了一个双字节的编码单元。最重要的是,UTF-16和ASCII一样简单,因为编码单元的值与0x0000到0xFFFF范围内的任意码点的码点值相同。对于该范围内的字符,UTF-16是固定长度的双字节编码。再回过来看一下我们前面涉及ghe的例子,你可以使用直接与该字符的码点对应的编码单元0x0490在UTF-16中表示它。
PS:好的网页设计师都知道:(
ylgm44
2005-11-02
打赏
举报
回复
utf-16固定使用两个字节表示一个字符,平常所说的unicode编码就是utf-16的。utf-8同ddmor所述。
ddmor
2005-11-02
打赏
举报
回复
UTF-> UCS Transformation Format
ddmor
2005-11-02
打赏
举报
回复
UCS 和 Unicode 只是分配整数给字符的编码表,而Utf8和Utf16则是具体的编码实现。
ddmor
2005-11-02
打赏
举报
回复
我这里先不讨论他们之间编码的具体细节,简单说一下:
unicode和utf-8之间最大的区别就是在存储上。unicode是宽字符存储(字符都是2个字节或4个字节来存储),而utf-8是多字节存储,字符的个数是不确定的(比如英文字符是1个字节表示,汉字可以是2个到6个来表示),其字符的首字节的前几位表明了它的字节个数。比如某个3字节汉字的uft-8编码(二进制)如下:
1110xxxx 10xxxxxx 10xxxxxx
首字节中1的个数为3表明该汉字用3个字节来表示。
myheartgon
2005-11-01
打赏
举报
回复
unicode编码是一种编码标准,utf-8,utf-16应该是它的具体实现方法!
cdhit
2005-10-31
打赏
举报
回复
还有问一下文本的编码问题,
在什么情况下才能确定两个.txt文本是一摸一样的。
譬如说用UltraEdit打开两个文本,“切换成十六进制编码模式”,如果在这时观察到的
十六进制值一摸一样的话,是不是可以认为这两个文本是完全相同文本。
我用一个unicode到gb的转码程序对这两个文本进行操作(十六进制值一摸一样),
但是得到的结果却不相同,一个能正确的转,另一个不能,结果是乱码。
Unicode
、
UTF
-8
编码
详解
Unicode
编码
字符
编码
:
Unicode
和
UTF
-8
之间的
关系
Unicode
和
UTF
-8
之间的
关系
1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。 上个世纪60年代,美国...
UTF
-8
与
UTF
-
16
编码
详解
UTF
-
16
是
Unicode
字符
编码
五层次模型的第三层:字符
编码
表(Character Encoding Form,也称为 "storage format")的一种实现方式。即把
Unicode
字符集的抽象码位映射为
16
位长的整数(即码元, 长度为2 Byte)的序列,用于数据存储或传递。
Unicode
字符的码位,需要1个或者2个
16
位长的码元来表示,因此这是一个变长表示。引用维基百科中对于
UTF
-
16
编码
的解释我们可以知道,
UTF
-
16
最少也会用2 Byte来表示一个字符,因此没有办法兼容ASCII
编码
。
Unicode
和
UTF
-8
、
UTF
-
16
、
UTF
-32之间的
关系
Unicode
和
UTF
-8
、
UTF
-
16
、
UTF
-32之间的
关系
要厘清它们之间的
关系
就要先从
编码
开始说起: ASCII码 我们都知道,在计算机的世界里,信息的表示方式只有 0 和 1,但是我们人类信息表示的方式却与之大不相同,很多时候是用语言文字、图像、声音等传递信息的。 那么我们怎样将其转化为二进制存储到计算机中,这个过程我们称之为
编码
。更广义地讲就是把信息从一种形式转化为另一种形式的过程...
GBK GB18030
Unicode
/
UTF
-8
/
UTF
-
16
编码
其它技术问题
3,881
社区成员
9,044
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章