- 论坛徽章:
- 0
|
这位仁兄对字符串的理解有点模糊。
你要分清ASCII和Unicode的区别,是2中不同的编码方式而已,
正是因为ASCII的表达字符方式太少(2^7-1=255)而Unicode可以表示字符(2^15-1=65536),
所以才采用Unicode编码以兼容世界所有其他国家的语言。现在的NT系统基本都是支持Unicode的。
因为Unicode编码采用双字节表示字符,而标准的ASCII只有单字节,所以单字节到双字节的转换很简单:
例如0x61("a")是ACII码,到Unicode就高位填充0x0061,这就是转换过程,ASCII的转换边界,
如果一定要说边界,那么就是1字节,同样,Unicode的边界是2个字节。
楼主还有个疑问,那么为什么fopen(char× str)可以打开中文目录呢? 大家都知道中文是双字节表示的,转换成char×以后,
举个例子,例如wstring = _T("文件"); 内存序列可能是0x1234,0x5678, 转换成char×,内容会产生变化,产生负数而且可以被操作系统识别
[ 本帖最后由 Wells.Wolfgang 于 2009-3-12 18:29 编辑 ] |
|