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',不可能作为一个汉字的第一字节.(你可能从一个字半路截取的?)
你能不能给出具体的出处?
-----
哦,转拼音的更简单,有很多现成的代码,大致思路就是因为常用汉字的内码排列是按拼音顺序的,把这些顺序定出来就能得到拼音。
你看看 这个代码,已经实现了根据汉字得到拼音等等的功能了。

C# 怎么把汉字转换成16进制
先把字符串转成byte数组,再把byte数组中的每个元素以16进制形式的字符串保存到字符串数组中,再根据字符串数组中的每个元素转换回byte数组,再根据byte数组生成字符串 string str = "你好";byte[] bytes = Encoding.Unicode.GetBytes(str);string[] strArr = new string[bytes.Length];Console.WriteL...

C#如何将TEXT输入的数据转换成16进制? 例如TEXT输入 AA 55 66 用数组...
int a=Convert.ToInt32(s, 16);

...标点符号的一段文字转换为16进制,并从16进制在转换回来
\/\/\/ \/\/\/ 转换16进制 \/\/\/ \/\/\/ \/\/\/ <returns><\/returns> public string StrToHex(string str) { string strTemp = ""; if (str == "") return ""; byte[] bTemp = System.Text.Encoding.Default.GetBytes(str); for (int i = 0; i < bTe...

c#把char改成16进制显示固定两位01
在 C# 中,可以使用 Convert.ToString() 方法将 char 类型转换为 16 进制字符串。然后使用 String.PadLeft() 方法在转换后的字符串左侧添加 0,使其显示固定的两位。示例代码如下:这段代码会将字符'A'转换成16进制'41',并用0填充成'41' 显示在控制台上 需要注意的是,这个方法只能在字符的 ASC...

C#中字符串转换成16进制BYTE数组
byts=(byte)Convert.ToInt32("123",16);如果你想将字符串数组中的内容转换成单个的Int值的再转成16进制,再转成byte数组的话,那帮你举个列子 1、2、3的16进制ASCII码分别为31、32、33 byte[] byts=new byte[3];byts[0]=(byte)0x31;byts[1]=(byte)0x32;byts[2]=(byte)0x33;...

C#里如何对位数很长的数字(已处理为字符串)转化为16进制
当作 string 类型来计算,先截取最后一位,看够不够减2,够了就把减去的结果替换掉 string 最后一位;不够就再截取最后两位看,依次类推。除法就是反复做减法,直到最后一次减法结果要变负数为止,商和余数就出来了)。再把2进制转换成16进制就容易多了,从后往前每4位截断一下,最前面不足位用0...

“C#”如何把字符串转化为十六进制的ASCII码?
\/**\/\/\/ \/\/\/ 16进制字符串转换为二进制数组\/\/\/ \/\/\/ 字符串每个字节之间都应该有空格,大多数的串口通讯资料上面的16进制都是字节之间都是用空格来分割的。\/\/\/ <returns>返回一个二进制字符串<\/returns>public static byte[] HexStringToBinary(string hexstring){ string[] tmpary = hexstring....

c#怎么实现整形转换成16进制,有什么方法可用
输出 string 中的每个字符的十六进制值。将 string 分析为字符数组,然后对每个字符调用 ToInt32(Char) 以获取相应的数字值。最后,在 string 中将数字的格式设置为十六进制表示形式。string input = "Hello World!";char[] values = input.ToCharArray();foreach (char letter in values){\/\/ Get ...

字符串怎么转换成16进制byte
字符串先转换二进制的在在转换16进制Byte 如下用C#实现的方法 字符转换到二进制方法 private static byte[] strToToHexByte(string hexString){ hexString = hexString.Replace(" ", "");if ((hexString.Length % 2) != 0)hexString += " ";byte[] returnBytes = new byte[hexString.Length \/...

怎么将C# 中textbox的字符串转为16进制 然后以16进制相加?
举个简单例子参考:string str1 = "0x11";string str2 = "0xAA";int sum = Convert.ToInt32(str1,16) + Convert.ToInt32(str2,16);把串每2个分开,转换相加;

相似回答