LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1660|回复: 6

在Linux下显示汉字内码程序的问题(以解决)

[复制链接]
发表于 2008-3-23 22:51:29 | 显示全部楼层 |阅读模式
我在Linux下需要用到一段程序,显示汉字的内码,
我是这样写的:
        unsigned char *szChar;
        szChar = "啊";

        printf("%x%x\n", *szChar, *(szChar+1));

预期输出的结果应该是B0A1(“啊”的内码表示,16位)
实际输出e595
有人知道怎样做才能显示汉字内码吗?谢谢~
        printf("%x%x\n", *szChar, *(szChar+1));
可能是        printf("%x%x\n", *(szChar+1), *szChar);
但还是不能得到B0A1
发表于 2008-3-23 23:39:36 | 显示全部楼层
这个跟你源码文件的编码有关
另外你所谓的内码是啥
回复 支持 反对

使用道具 举报

发表于 2008-3-26 16:15:22 | 显示全部楼层
0xA1B0是GB2312编码
0x8A95E5是UTF-8编码
Linux默认编码是UTF-8
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-27 21:15:46 | 显示全部楼层
哦~刚才在网上看了一下
GB    code :                 B0A1
unicode:     554A
UTF-8      code :               E5   95   8A
Chinese   Character(coded   in   UTF-8)        啊   

那如果我要从UTF-8转换为GB2312应该怎么转?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-27 22:01:20 | 显示全部楼层
或者说,我编程的时候想把默认的汉字编码改成zh_CN.GBK,应该改哪个环境变量
回复 支持 反对

使用道具 举报

发表于 2008-3-28 00:47:29 | 显示全部楼层
如果你是想改变源文件的编码的话,使用iconv工具.
如果你想在程序中改变字符串的编码的话,使用iconv函数.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 23:24:12 | 显示全部楼层
谢谢楼上!搞定~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表