关于 c 语言 将汉字转换成unicode编码

xiaoyao18301 2009-12-08 01:20:06
大家好 我是想把一个字符数组中的汉字字符 转换成各自对应的unicode编码 然后写到文件当中去
我们如果用eltraedit打开一个图片文件 可以看到各个字符的16进制编码 当然其中也可以看到汉字的编码
而我现在要做的 应该是一个逆过程 先得到汉字的编码 然后在写到文件中去
可是我尝试了很久 也没有很好的办法 请大家 帮助
...全文
770 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyao18301 2009-12-08
  • 打赏
  • 举报
回复
不用了 谢谢大家 我已经解决了 现在给分了 呵呵 感谢大家的帮助
xiaoyao18301 2009-12-08
  • 打赏
  • 举报
回复
谢谢 以上几位 很是感谢
现在又有一个新问题 就是 如果改变字节次序 我知道大端 小端 是由于硬件所决定的 那么如果我想得到 “你好”的最终转换结果是 0x60 0x4F 0x59 0x7D 程序能够实现嘛
do_fork 2009-12-08
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <wchar.h>

int main()
{
wchar_t h[]=L"你好";
printf("%X%X\n", h[0], h[1]);
}


执行
$ ./a.out
4F60597D
shellfish567 2009-12-08
  • 打赏
  • 举报
回复
数据在计算机内都是以二进制方式储存的,无论字符串或者汉字,各种类型只不过是按照不同的人为翻译过来的,内部都还是二进制的,注:60 4F 7D 59,每两个16进制数等于一个char,一个16进制数=4bit
shellfish567 2009-12-08
  • 打赏
  • 举报
回复
还是以“你好”来说吧,char 8bit,一个汉字由两个byte组成,请看如下程序;
int main()
{
char ch[100];
memset(ch,'\0',100);
scanf("%s",ch);//这里你随便输入汉字就是
int i=0;
while(ch[i]!='\0')
{
printf("%x ",ch[i]);
i++;
}
}
[Quote=引用 5 楼 do_fork 的回复:]
引用 2 楼 xiaoyao18301 的回复:
我的意思是说 比如 “你好”的unicode 16进制编码为 60 4F 7D 59 这是我通过ultraedit才知道的 那么 我通过程序 怎样将"你好"转换出它们的unicode 16进制编码呢?


这个“你好”从什么地方到达你的程序呢?
[/Quote]
xiaoyao18301 2009-12-08
  • 打赏
  • 举报
回复
这个 是通过自己初始化 也就是说 汉字字符串 都是人为设置的
do_fork 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiaoyao18301 的回复:]
我的意思是说 比如 “你好”的unicode 16进制编码为 60 4F 7D 59 这是我通过ultraedit才知道的 那么 我通过程序 怎样将"你好"转换出它们的unicode 16进制编码呢?
[/Quote]

这个“你好”从什么地方到达你的程序呢?
xiaoyao18301 2009-12-08
  • 打赏
  • 举报
回复
恩 必须是unicode编码 所以现在只能这样做
不知道你有没有好的思路 谢谢
罗耗子 2009-12-08
  • 打赏
  • 举报
回复
一定要unicode编码吗?好多文件都是ASCII编码,也能存放汉字
xiaoyao18301 2009-12-08
  • 打赏
  • 举报
回复
我的意思是说 比如 “你好”的unicode 16进制编码为 60 4F 7D 59 这是我通过ultraedit才知道的 那么 我通过程序 怎样将"你好"转换出它们的unicode 16进制编码呢?
do_fork 2009-12-08
  • 打赏
  • 举报
回复
你得到汉字的时候,已经得到编码了

69,371

社区成员

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

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