c语言中文编码的问题

发布网友

我来回答

3个回答

热心网友

输入可以采用GB2312或者GBK编码,如果繁体,就用UTF-8
读入汉字,从文件或者标准输入读,每次读一个字节,依次存入数组
如果可以确定是全部汉字,那么可以一次读入两个字节
结束符可以用\0,但是由于双字节汉字编码低位可能是0 所以结束符要用双\0
针对英文字符和汉字混合的情况,可以这样判断
每次读入一个字符,如果该字符大于0x80 则这是一个汉字的高位,继续读入并存储
如果该字符小于0x80 则这是一个英文字符,直接存储

do
read one byte
check
if > 0x80 read next
save
while(!end)
大致这样
直到读入约定的end标志,可以是\n 可以是eof

热心网友

#include <stdio.h>

int main()
{
wchar_t str[1000];
int i;
scanf("%ls",str);
for(i=0;str[i]!=L'\0';i+=2)
{
printf("%#X%X ",str[i],str[i+1]);
}
return 0;
}追问如何把str[i],str[i+1]当做一个整数存入一个int型数组?
我知道了,str[i],str[i+1]当int型输出就是那两位整数了
谢谢

热心网友

从汉字到双字节字符的映射怎么解决追问标准的编码方式,已经确定的,比如“我”就是206,210
我的问题主要是怎么读出这个编码

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com