请教,如何将汉字转换成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;}