首页
社区
课程
招聘
[旧帖] [求助]关于ascii码后128位的问题 0.00雪花
发表于: 2009-9-6 20:45 1742

[旧帖] [求助]关于ascii码后128位的问题 0.00雪花

2009-9-6 20:45
1742
当字符大于7f时,显示的有中文字符,请教高手为什么

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
乱码吧,解析的问题了,
2009-9-6 22:22
0
雪    币: 724
活跃值: (81)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
ANSI编码中,中文代码页是双字节编码,首字节是0x80以后的编码,第二字节应是0x40以后的编码。双字节编码的代码页有多种,MSDN上查一下有关“代码页”或“code page”吧。
2009-9-6 22:36
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
同样一个文件,用winhex打开显示没有中文,但自己写个程序,将读入的BYTE类型转换成char输出却有中文,这是为什么
2009-9-7 16:27
0
雪    币: 724
活跃值: (81)
能力值: ( 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个字节表示一个字符,如果错位了,就会显示乱码)。
2009-9-7 20:01
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
MSDN上查一下有关“代码页”或“code page”吧
2009-9-8 05:49
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
以前也知道这样的问题,只知道是编码的问题,不知道具体的原因,
今天算是学习 了。。。。
谢谢
2009-9-8 10:31
0
游客
登录 | 注册 方可回帖
返回
//