请教汉字编码问题GB2312

mallco 2008-10-08 03:18:25
关于GB2312的小问题,拿到一个int形式的编码,要显示出汉字来,如果直接读原
始数据先取的是低位字节,这样显示不出汉字,如果反过来先读高字节的话就可以。
是不是要把这两个字节逆序存放??

char * cha = "啊";
int chn = 0xB0A1;//‘啊’的GB2312编码
char * test = (char*)&chn;
char temp[3];

temp[0] = (char)test[1];//BO
temp[1] = (char)test[0];//A1
temp[2] = '\0';
printf("%s \n",&temp);

下面的得不到
/********************************
temp[0] = (char)test[0];
temp[1] = (char)test[1];
temp[2] = '\0';
********************************/
...全文
115 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hfutwater 2008-10-09
  • 打赏
  • 举报
回复
还可以这样写???
Darkneece 2008-10-08
  • 打赏
  • 举报
回复
PC是little endian存储,低字节在低地址

B0,A1 用int表示是0xA1B0
mallco 2008-10-08
  • 打赏
  • 举报
回复
如果拿到的就是一个int编码 为什么不能直接就输出呢
szhshaozhihua 2008-10-08
  • 打赏
  • 举报
回复
中文有 GBK GB2312 简体中文有 UTF-8 一般用UTF-8比较好些 GBK也不错。
季昂 2008-10-08
  • 打赏
  • 举报
回复
你所使用的操作系统是什么语言?
系统的默认语言环境是否是,中文,GB2312编码,如果不是,在控制台上肯定得不到!
你别装个日文系统,想输出这个字,那就要设置语言环境了!

OpenHero 2008-10-08
  • 打赏
  • 举报
回复
内存存储有关系,高位低位

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧