有一字符串如下:
0xD1020000789CA5914D4AC3401886BFFEA6A9B40B4F10B 25328348D8B4A116CD3A8911AB113052DA58CE9548393A4 245368BD821771E746DDB8103C821BCFE005BA71E3C4568 8A5E8C21966989F67DEEFE59D0400A4F85055F5250950AA 4A8AA416F2A54DA92295798F66A5906F9F2036A184AFC40 44031217E6D4DEC926CD6F403175341BBC441489850DC6D 5454A5D2D3F6EA6DA45BB91DDF6311B8CAE5E1A6830ED3C 8B9261998B5DBE47646F3A91F08824D1B14DB57F9FD913B D44641C8CF443B6892011E51261C7B8EEDF789084B6AE71 0C35E1F07FDDCBF5D646D6AFA1E494726C4BFACC08F982A F198D66121A6748B0CD84ACBF1081A62DBF12E527790B6F 0795884059D8DB84E64B7080AFF95B254E5436EE0D0B175 4A5CE231A3B925CB4A79DEAAB22C35EAC8D0F4967EA09B5 6AF4E1D1C6ADC29A79EDE5FA76FF7CFD39EB2948A2CC6A8 8889D5B126C3E85659385EF2282ECC834384129B198CB8A 145C68CC3B5DAAF98D11F73A8CC9979D83DC4A3A26446CC 353ADF15BBB22C17F21D383BFB387D0C1E8EBAB0267D023 976D5D4请高人解码注意,字符串中的空格是我自己加个,因为csdn认为我的字符串太长了,要求加空格,实际上该字符串中间是没有空格的
0xD1020000789CA5914D4AC3401886BFFEA6A9B40B4F10B 25328348D8B4A116CD3A8911AB113052DA58CE9548393A4 245368BD821771E746DDB8103C821BCFE005BA71E3C4568 8A5E8C21966989F67DEEFE59D0400A4F85055F5250950AA 4A8AA416F2A54DA92295798F66A5906F9F2036A184AFC40 44031217E6D4DEC926CD6F403175341BBC441489850DC6D 5454A5D2D3F6EA6DA45BB91DDF6311B8CAE5E1A6830ED3C 8B9261998B5DBE47646F3A91F08824D1B14DB57F9FD913B D44641C8CF443B6892011E51261C7B8EEDF789084B6AE71 0C35E1F07FDDCBF5D646D6AFA1E494726C4BFACC08F982A F198D66121A6748B0CD84ACBF1081A62DBF12E527790B6F 0795884059D8DB84E64B7080AFF95B254E5436EE0D0B175 4A5CE231A3B925CB4A79DEAAB22C35EAC8D0F4967EA09B5 6AF4E1D1C6ADC29A79EDE5FA76FF7CFD39EB2948A2CC6A8 8889D5B126C3E85659385EF2282ECC834384129B198CB8A 145C68CC3B5DAAF98D11F73A8CC9979D83DC4A3A26446CC 353ADF15BBB22C17F21D383BFB387D0C1E8EBAB0267D023 976D5D4请高人解码注意,字符串中的空格是我自己加个,因为csdn认为我的字符串太长了,要求加空格,实际上该字符串中间是没有空格的
str = str.Substring(2);
byte[] bytes = new byte[str.Length / 2];
for (int i = 0; i < bytes.Length; i++)
{
bytes[i] = Convert.ToByte(str.Substring(i * 2, 2), 16);
}得到这样的字节数组,然后再看着办吧
string s="";
byte[] b= System.Text.Encoding.BigEndianUnicode.GetBytes(s);
s=BitConverter.ToString(b).Replace("-","");
MessageBox.Show(s); public static string GetChsFromHex(string hex)
{
byte[] bytes = new byte[hex.Length / 2];
for (int i = 0; i < bytes.Length; i++)
{
try
{
bytes[i] = byte.Parse(hex.Substring(i * 2, 2),
System.Globalization.NumberStyles.HexNumber);
}
catch
{
}
}
System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");
return chs.GetString(bytes);
}
{
string s="0xD1020000789CA5914D4AC3401886BFFEA6A9B40B4F10B25328348D8B4A116CD3A8911AB113052DA58CE9548393A4245368BD821771E746DDB8103C821BCFE005BA71E3C45688A5E8C21966989F67DEEFE59D0400A4F85055F5250950AA4A8AA416F2A54DA92295798F66A5906F9F2036A184AFC4044031217E6D4DEC926CD6F403175341BBC441489850DC6D5454A5D2D3F6EA6DA45BB91DDF6311B8CAE5E1A6830ED3C8B9261998B5DBE47646F3A91F08824D1B14DB57F9FD913BD44641C8CF443B6892011E51261C7B8EEDF789084B6AE710C35E1F07FDDCBF5D646D6AFA1E494726C4BFACC08F982AF198D66121A6748B0CD84ACBF1081A62DBF12E527790B6F0795884059D8DB84E64B7080AFF95B254E5436EE0D0B1754A5CE231A3B925CB4A79DEAAB22C35EAC8D0F4967EA09B56AF4E1D1C6ADC29A79EDE5FA76FF7CFD39EB2948A2CC6A88889D5B126C3E85659385EF2282ECC834384129B198CB8A145C68CC3B5DAAF98D11F73A8CC9979D83DC4A3A26446CC353ADF15BBB22C17F21D383BFB387D0C1E8EBAB0267D023976D5D4";
MessageBox.Show(GetChsFromHex(s.Substring(2))); //显示: ?
MessageBox.Show(GetChsFromHex(s)); //Input string was not in a correct format
} public static string GetChsFromHex(string hex)
{
byte[] bytes = new byte[hex.Length / 2];
for (int i = 0; i < bytes.Length; i++)
{
try
{
bytes[i] = byte.Parse(hex.Substring(i * 2, 2),
System.Globalization.NumberStyles.HexNumber);
}
catch
{
}
}
System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");
return chs.GetString(bytes);
} private void Form1_Load(object sender, EventArgs e)
{
string s = "D1020000789CA5914D4AC3401886BFFEA6A9B40B4F10B25328348D8B4A116CD3A8911AB113052DA58CE9548393A4245368BD821771E746DDB8103C821BCFE005BA71E3C45688A5E8C21966989F67DEEFE59D0400A4F85055F5250950AA4A8AA416F2A54DA92295798F66A5906F9F2036A184AFC4044031217E6D4DEC926CD6F403175341BBC441489850DC6D5454A5D2D3F6EA6DA45BB91DDF6311B8CAE5E1A6830ED3C8B9261998B5DBE47646F3A91F08824D1B14DB57F9FD913BD44641C8CF443B6892011E51261C7B8EEDF789084B6AE710C35E1F07FDDCBF5D646D6AFA1E494726C4BFACC08F982AF198D66121A6748B0CD84ACBF1081A62DBF12E527790B6F0795884059D8DB84E64B7080AFF95B254E5436EE0D0B1754A5CE231A3B925CB4A79DEAAB22C35EAC8D0F4967EA09B56AF4E1D1C6ADC29A79EDE5FA76FF7CFD39EB2948A2CC6A88889D5B126C3E85659385EF2282ECC834384129B198CB8A145C68CC3B5DAAF98D11F73A8CC9979D83DC4A3A26446CC353ADF15BBB22C17F21D383BFB387D0C1E8EBAB0267D023976D5D4";
byte[] b = System.Text.Encoding.BigEndianUnicode.GetBytes(s);
s = BitConverter.ToString(b).Replace("-", "");
MessageBox.Show(s); //显示一个字符串:每个字符都是0-9的数字;
MessageBox.Show(GetChsFromHex(s)); //显示空白
}