Reiiden制作笔记E(OGRE编码总结)

来源:互联网 发布:为什么淘宝打不开 编辑:程序博客网 时间:2024/05/17 16:45

这两天又被CEGUI的编码问题郁闷了,每次在编码问题都要纠结一下,这次彻底整理:

一、概述
1 Ascii
    ASCII 只支持英语
    ANSI编码 为了本地化,使用多个字节代替表示1个字符(GB2312 BIG5 JIS GBK)
2 UNICODE
    UTF16  使用16位来存放一个序号(DBCS 宽字符模式)
3 UTF-8
    不定长,不存在跨平台问题,中文一个占3个

 

二、例子
    1 ASCII 使用一个字节存放一个字符(SBCS)
        Kuma8dao7 4B 75 6D 61 38 64 61 6F 37
    2 ANSI编码 为了本地化,使用多个字节代替1个字符(MBCS VC的一个字符选项)
        飞鸟空(GB2312) B7 C9 C4 F1 BF D5
    3 UTF16 使用16位存放一个序号(DBCS VC的另一个字符选项,一般是UTF16-LE)
        Kuma8dao7 4B 00 75 00 6D 00 38 00 64 00 61 00 6F 00 37 00
        飞鸟空  DE 98 1F 9E 7A 7A
    4 UTF8
        Kuma8dao7 4B 75 6D 61 38 64 61 6F 37
        飞鸟空  E9 A3 9E E9 B8 9F E7 A9 BA

 

三、VC字符串(可能有误,是根据现象的推测)
    VC主要是DBCS和MBCS两种,就是加L和不加L。
    如果加L那么就把引号里的内容转化为宽字符,不加L就直接保存。
    对于CEGUI所需要的UTF8,显然这两种方式都不合适,解决方法有两种:
        1 UTF8和ASCII。英文是一致的,只要将中文变为3个字符即可。所以只需要改变当前的文件格式为UTF8,再输入中文时,自然就变成了3个字符的UTF8。
        问题在于VC会认为此文件是ASCII的,运气好的话中文中没有ASCII的控制符才可。
        2 维持当前格式不变(GB2312)。输入一个宽字符,转化为UTF8即可。

原创粉丝点击