美文网首页
字符串和编码、MBCS与Unicode码

字符串和编码、MBCS与Unicode码

作者: 风轻云淡宇 | 来源:发表于2020-02-11 17:15 被阅读0次
    • 1.ASCII编码 0~127 使用一个字节即可表示;
    • 2.但其它国家语言,如汉字(GB2312),日语(Shift_JIS)等,但各有各的编码,编码会有冲突,但和ASCII编码不会冲突,微软对各个语系都有特定的表示方法(应该是根据系统选择的区域和语言),GB2312或Shift_JIS实际就是MBCS的一种编码方式:
      早在Windows采用Unicode统一编码进行语言管理之前,Windows为了能够进行非ANSI标准字符的输出,于是采用两个字节来表示这些语言文字。因为这些双字节文字和ANSI是混和在一起的,为了加以区别,Windows将这些字符的最高位置为1(即这些双字节文字的每个字节都>=127),所以这种表示法可以表示 127x127 约一万多种非ANSI文字,其本上可以表示任何一种语言的常用文字了。于是,Windows为每一个区域版本,都制定了分别独立的文字编码,这就是MBCS(多字节码)。

    说这么多就是说不同语言的操作系统MBCS编码不一样,如中文系统就是GB2312.

    • 3.为防止编码冲突,将所有语言都统一成Unicode编码,该编码内存表示方式有UTF-8,UTF-16和UTF-32,我们习惯说的Unicode编码方式实际是说的UTF-16这种表示方式,这个很多博客都没有说清楚,很多初学者很容易混淆编码和表示方式;
    • 4.Windows编程中常常看到有WideChar2StdStr类似的函数,一般都是把UTF-16表示的Unicode字符串(WCHAR)转化为MDBC(char)--MDBC实际就是MBCS的内存表示方式。

    参考自:
    字符串和编码
    MBCS与Unicode码

    相关文章

      网友评论

          本文标题:字符串和编码、MBCS与Unicode码

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