美文网首页
字符集utf-8/unicode

字符集utf-8/unicode

作者: YongpingZhao | 来源:发表于2016-08-17 11:20 被阅读0次

    概念##

    什么是unicode/utf-8
    unicode定义了所有可以用来表示字符的数值集合,而utf8/utf16等utf标准定义了这些数值和字符的映射关系。简单来说,unicode、gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式

    控制码##

    把0x20以下的字节状态成为“控制码”

    ascii码##

    所有的空格、标点符号、数字、大小写字码分别用连续的字节状态表示,一直到127号,这就是ascii码

    gb2312##

    gb2312是对ASCII码的中文扩展。
    “半角字符”:127号以下的就是半角字符。
    “全角字符”:127号以上的就是全角字符

    utf-8##

    编码规则####

    1.对于单字节符号,字节的第一位设为0,后面7位为这个符号的unicode码,对于英文字母,utf-8和unicode是相同的。
    2.对于n字节的符号(n>1),第一个字节的前n为都为1,第n+1为设为0,后面字节的前两位一律设为10,剩下的没提及的二进制位,全部为这个符号的unicode码。

    优势####

    uft-8最大的优势是没有字节序的概念,特别适合用于字符串的网络字节传输,没有大小端的概念。

    劣势####

    本地字符串的处理时,处理英文字符的时候并不会有大的问题,但是处理中文字符等远东字符的时候,由于一个字符并不能完整的表示一个中文汉字,在utf8模式下,一个中文字符至少需要3个utf8字符。因此通过下标来处理中文字符很困难。而且一个中文汉字需要占用3个字符,占用的流量也比较大。

    unicode##

    ISO 规定必须用两个字节,也就是16位来统一表示所有的字符,对于ascii里的那些"半角"字符,UNICODE 包持其原编码不变,只是将其长度由原来的8位扩展为16位,而其他文化和语言的字符则全部重新统一编码。由于"半角"英文符号只需要用到低8位,所以其高 8位永远是0,因此这种大气的方案在保存英文文本时会多浪费一倍的空间。

    相关文章

      网友评论

          本文标题:字符集utf-8/unicode

          本文链接:https://www.haomeiwen.com/subject/zgapsttx.html