标题:怪事~汉字内码。。。。
只看楼主
zzjking
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-7-16
 问题点数:0 回复次数:7 
怪事~汉字内码。。。。

程序如下
#include<stdio.h>
main()
{
char *p;
char a[]="你好";

p=a;
while(*p!='\0')
{
printf("%d ",*p);
p++;
}
}
这是1个非常简单的看汉字内码的程序,

按道理来说 结果应该是4组数字 比如 22 33 44 55

但是我运行的结果是:-28 -67 -96 -27 -91 -67 这个成6组数字了~1个汉字是2个字节~应该是4组数啊~

这是为什么啊~我用的linux的终端写的.C程序~

我同学也是这么写的~他就能出正确的结果~

说是我RP问题~我想知道问题在哪里....请指点下~

搜索更多相关主题的帖子: 内码 怪事 汉字 
2007-07-24 10:31
boot2046
Rank: 2
等 级:新手上路
威 望:3
帖 子:168
专家分:0
注 册:2007-7-23
得分:0 
如果我没有说错的话,楼主的你好两个字是utf8编码的,你把他改成gb2312的就行了
export LANG=zh_CN.GB2312
重新输入你好

Linux是简单的,你不需要成为天才也能理解这种简单,Windows是复杂的,就算你是天才也不能理解这种复杂
2007-07-24 10:45
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
得分:0 
#include<stdio.h>
main()
{
unsigned char *p;
unsigned char a[]="你好";

p=a;
while(*p!='\0')
{
printf("%d ",*p);
p++;
}
getch();
}

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-07-24 10:52
zzjking
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-7-16
得分:0 

那请问你这个命令在哪里进行操作呢?我不太明白LINUX


2007-07-24 11:00
boot2046
Rank: 2
等 级:新手上路
威 望:3
帖 子:168
专家分:0
注 册:2007-7-23
得分:0 
直接在终端里输入export LANG=zh_CN.GB2312

Linux是简单的,你不需要成为天才也能理解这种简单,Windows是复杂的,就算你是天才也不能理解这种复杂
2007-07-24 11:19
zzjking
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-7-16
得分:0 
回复:(boot2046)直接在终端里输入export LANG=zh_C...
感谢~

2007-07-24 12:45
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
得分:0 
学到东西了
是一个得到汉字内码的好方法啊
运行结果是: 192 227 186 95
2007-07-24 14:12
小莳
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-6-17
得分:0 

这是在什么环境下运行的
汉字内马?
看来又该去看书了

2007-07-24 19:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-157647-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.200280 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved