<项目中奇怪事>Unicode.十进制问题

192 阅读2分钟

今日项目中遇到一堆乱码,最后发现是Unicode的十进制,需要翻译里面的内容. 这时候就需要的在线网站进行翻译. image.png

拓展:Unicode还有分十进制和十六进制

Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。

Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。

Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。

Unicode编码的发展

计算机在设计时采用8个比特(bit)作为一个字节(byte),所以一个字节最多能表示256个字符,早期对于使用英文的西方国家来说,一个字节可以存储大小写英文字母、数学和一些符号,因此使用一个字节来制作码表(ASCII)。后来计算机传到了其他的国家,很多国家都是使用自己的语言,比如中文、日文、韩文…语言复杂了,为了解决这个问题,每个国家制定自己的码表,中国在1980年便制定了GB2312汉字编码字符集,汉字比英文多很多,一个字节明显不够用,所有就使用2个字节来编码。然而不同国家所定义的字符编码虽然可以使用,但是在不同的国家间却经常出现不兼容的情况。如果电脑想处理多语言环境(使用中文或其他语言)可能存在无法同时支持多语言环境。为了统一所有文字的编码,产生了Unicode,把所有语言的都统一到一套编码里,这样就不会乱码了。

image.png

Unicode字符集转换格式,即怎样将Unicode定义的数字转换成程序数据

十进制Unicode编码UTF-8字节流
0-127位0x000000-0x00007F0xxxxxxx(7位)
128-2047位0x000080-0x0007FF110xxxxx 10xxxxxx(11位)
2048-65535位0x000800-0x00FFFF1110xxxx 10xxxxxx 10xxxxxx(16位)
65536-1114111位0x010000-0x10FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx(21位)

转载至:m.php.cn/article/414…

推荐在线工具类: 网站 网站2