如何获得C#中Unicode字符的十六进制表示形式?
这是我的密码:如何获得C#中Unicode字符的十六进制表示形式?,c#,string,unicode,C#,String,Unicode,这是我的密码: var hexString = BitConverter.ToString(Encoding.Unicode.GetBytes("ABCD")); hexString = Regex.Replace(hexString, "[-]", string.Empty); 我得到的结果是: 4100420043004400 我应该得到: 0041004200430044 这看起来像是一个尾随问题,以“00”结尾,但当我尝试使用特殊字符时,实际上会出现其他错误 例如,希腊字母crm
var hexString = BitConverter.ToString(Encoding.Unicode.GetBytes("ABCD"));
hexString = Regex.Replace(hexString, "[-]", string.Empty);
我得到的结果是:
4100420043004400
我应该得到:
0041004200430044
这看起来像是一个尾随问题,以“00”结尾,但当我尝试使用特殊字符时,实际上会出现其他错误
例如,希腊字母crmk_
应该是039f
但是我的代码给了我9F03
我甚至尝试了在另一个问题中发现的以下代码:
public static string ByteArrayToString(byte[] ba)
{
StringBuilder hex = new StringBuilder(ba.Length * 2);
foreach (byte b in ba)
hex.AppendFormat("{0:x2}", b);
return hex.ToString();
}
结果是一样的。您可以使用Unicode编码
试试看-它会给你你想要的东西(即'ABCD'的
0041004200430044
)-只需将Unicode更改为BigendiaUnicode即可。你可以使用Unicode编码
试试看-它会给你你想要的(例如,0041004200430044
for'ABCD')-只需将Unicode更改为BigendiaUnicode即可