多字节字符集和宽字节字符集区别
2016-03-30 10:02
423 查看
多字节字符集 字符编码可能是1个字节 也可能是2个字节
ascii码占用1个字节存储
中文(unicode)等 占用2个字节
IT学吧 16进制编码 73 84 -47 -89 -80 -55 0 16进制最高位为1 代表负数 当存在负数则会把两个负数当做一个中文字符
73-I 1字节
84-T 1字节
-47 -89 -学 2字节
-80 -55 -吧 2字节
0 -\0 这总的7个字节
宽字节字符集 每个字符编码都是2个字节
ascii 也变成2字节 在原先字节前补充0x00 结束符以2个\0代表结束 (不然0x00就是代表\0 当查找到ascii就直接结束 )
字符串解释都是两个字符为单位进行解释,速度快
IT学吧 16进制 00 73 00 84 5B 66 54 27 00 00
sizeof = 10
只能调用wcslen(“IT学吧”) = 4 遇到\0\0结束
不能用 strlen 遇到\0 就结束了
两者兼容
“”多字节字符 L"" unicode字符
_T来兼容两者 是个宏 定义了unicode则为L 不然为“”
ascii码占用1个字节存储
中文(unicode)等 占用2个字节
IT学吧 16进制编码 73 84 -47 -89 -80 -55 0 16进制最高位为1 代表负数 当存在负数则会把两个负数当做一个中文字符
73-I 1字节
84-T 1字节
-47 -89 -学 2字节
-80 -55 -吧 2字节
0 -\0 这总的7个字节
宽字节字符集 每个字符编码都是2个字节
ascii 也变成2字节 在原先字节前补充0x00 结束符以2个\0代表结束 (不然0x00就是代表\0 当查找到ascii就直接结束 )
字符串解释都是两个字符为单位进行解释,速度快
IT学吧 16进制 00 73 00 84 5B 66 54 27 00 00
sizeof = 10
只能调用wcslen(“IT学吧”) = 4 遇到\0\0结束
不能用 strlen 遇到\0 就结束了
两者兼容
“”多字节字符 L"" unicode字符
_T来兼容两者 是个宏 定义了unicode则为L 不然为“”
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- android 代码实现控件之间的间距
- [Android]在代码里运行另一个程序的方法
- 关于指针的一些事情
- 肯特·贝克:改变人生的代码整理魔法
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- 网页恶意代码的预防
- 高手写的Tracer-Flash代码调试类代码下载
- CSS代码缩写技巧
- 非主流Q-zOne代码代码搜集第1/2页
- CreateWeb.vbs 代码
- Lua中调用C++函数示例
- Lua中编译执行代码相关的函数详解
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- 更有效率的css代码编写第1/3页
- 代码中到底应不应当写注释?
- C++高级程序员成长之路