能力值:
( LV2,RANK:10 )
|
-
-
2 楼
乱码吧,解析的问题了,
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
ANSI编码中,中文代码页是双字节编码,首字节是0x80以后的编码,第二字节应是0x40以后的编码。双字节编码的代码页有多种,MSDN上查一下有关“代码页”或“code page”吧。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
同样一个文件,用winhex打开显示没有中文,但自己写个程序,将读入的BYTE类型转换成char输出却有中文,这是为什么
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
文本显示涉及以下概念:
字符是如何编码的,是一个BYTE的0x41表示字符A呢,还是一个WORD的0x41表示字符A呢,对于中文就更杂了。字符编码有许多种,即与语言相关,又其它因素相关(同一个汉字在简体中文、繁体中文中、日文、韩文中表达式不同)。
字符显示还涉及字体问题,字体是字符到字形的映射,同样,它也有字符编码的问题,即它认什么样的编码。
在WINDOWS平台上字符串编码分为两大类:ANSI和UNICODE,如果是UNICODE,你需要调用UNICODE相关的API去处理,如TextOutW, 如果是ANSI,你需要调用ANSI相关的API去处理,如TextOutA。
如果数据->编码->字体对不上,你的显示结果可能会是乱码,或干脆没有。
由于WINDOWS平台支持多种语言,因此也支持多种字符编码,ANSI字符编码通过“代码页”进行选择。一般情况下使用系统默认代码页,如简体中文系统的的默认代码页是936,如果想在简体中文系统上使用ANSI编码显示日文,则你需要将代码页设为日文的(好象是930,记不清了)。同样,你要选择支持日文代码页的字体。
许多西方的软件不支持中文,它刻意选择代码页/字体,回避中文问题(如乱码问题,汉字需要2个字节表示一个字符,如果错位了,就会显示乱码)。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
MSDN上查一下有关“代码页”或“code page”吧
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
以前也知道这样的问题,只知道是编码的问题,不知道具体的原因,
今天算是学习 了。。。。
谢谢
|
|
|