首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问,怎么将汉字转换成16进制

2012-02-14 
请教,如何将汉字转换成16进制请问高手:我使用C++编程,现在想完成下面几个功能!1、从文件中将汉字读取出来。2

请教,如何将汉字转换成16进制
请问高手:
  我使用C++编程,现在想完成下面几个功能!
  1、从文件中将汉字读取出来。
  2、将汉字转换成16进制编码。
  3、将该16进制编码写入文件中。
希望高手指点!谢谢!

[解决办法]
可以用MultiByteToWideChar将汉字的长度读出来,然后用MultiByteToWideChar这个函数转换,再WideCharToMultiByte一下,就能转成你要多那种,可以试试
[解决办法]
假设文件连续存放gb2312的汉字,那么可以用一个unsigned short int的变量,依次从文件中读取值,这样这个汉字的编码就在这个变量中了,然后将这个变量转换为16进制字符. 如果考虑字节序,可以用unsigned char的变量. 两种方法得到的结果可能差别很大.推荐用后一种方法.
[解决办法]

C/C++ code
#include<iostream>#include<string>#include<cstring>const int SIZE=60;using namespace std;int main(){    unsigned char name[SIZE];    cout<<"输入汉字: "<<endl;    cin>>name;    unsigned char a1,a2;    int i=0;    while(name[i]!='\0')    {        if(name[i]<127 && name[i] >0)//考虑中英混合        {            i++;        }        else        {            a1=name[i];            a2=name[i+1];            cout<<hex;            cout<<"num"<<":"<<(int)a1<<(int)a2<<endl;            i+=2;        }       }    return 0;} 

热点排行