C# 怎么把汉字转换成16进制

C# 怎么把汉字转换成16进制,在从16进制转换到汉字???

先把字符串转成byte数组,
再把byte数组中的每个元素以16进制形式的字符串保存到字符串数组中,
再根据字符串数组中的每个元素转换回byte数组,
再根据byte数组生成字符串

string str = "你好";
byte[] bytes = Encoding.Unicode.GetBytes(str);
string[] strArr = new string[bytes.Length];
Console.WriteLine("16进制显示'你好':");
for (i = 0; i < bytes.Length; i++)
{
strArr[i] = bytes[i].ToString("x");
Console.Write(strArr[i]+" ");
}
Console.WriteLine();

Console.WriteLine("从16进制转换回汉字:");
for (i = 0; i < strArr.Length; i++)
{
bytes[i] = byte.Parse(strArr[i], System.Globalization.NumberStyles.HexNumber);
}

string ret = Encoding.Unicode.GetString(bytes);
Console.WriteLine(ret);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-01
extern "C"
{
__declspec(dllexport)
int WINAPI icePub_hexStringToBCDHex(BYTE *strHexString,BYTE *hexBuffer,int hexStringLen);
}

#pragma comment(lib,"icePubDll.lib")

char buffer[128];

icePub_hexStringToBCDHex("D4C2B9E2",buffer,8);
AfxMessageBox(buffer);//压缩后可能是不可显数据

extern "C"
{
__declspec(dllexport)
void WINAPI icePub_BCDHexToHexString(BYTE *hexBuffer,BYTE *strHexString,int hexBufferLen);
}

#pragma comment(lib,"icePubDll.lib")

char str1[128];

icePub_BCDHexToHexString("月光",str1,8);
AfxMessageBox(str1);

参考资料:icePubDll百度之

第2个回答  2011-11-01
先把汉字转成ASCII码。然后转16进制。。转回来也是一样的。。
第3个回答  2011-11-02
取决于不同的编码方式.
先用一个函数将十六进制转为二进制数组,然后用Encoding命名空间下的对应编码将其转换为字符串.
稍等我给你代码.
---
static void Main()
{
Console.WriteLine(System.Text.Encoding.GetEncoding("GB2312").GetString(new byte[] ));
string str = "我";
var bin = System.Text.Encoding.GetEncoding("gb2312").GetBytes(str);
foreach(byte b in bin)
{
Console.WriteLine(b.ToString());
}
}
-----
这个例子里我用的是GB2312编码,你也可以使用UTF-8.
但我很奇怪你用的4E 01是哪里来的. 因为4E对应的Ascii编码是'N',不可能作为一个汉字的第一字节.(你可能从一个字半路截取的?)
你能不能给出具体的出处?
-----
哦,转拼音的更简单,有很多现成的代码,大致思路就是因为常用汉字的内码排列是按拼音顺序的,把这些顺序定出来就能得到拼音。
你看看 这个代码,已经实现了根据汉字得到拼音等等的功能了。
相似回答