精易论坛

标题: 十六进制转GBK编码文本后控制符号变成? [打印本页]

作者: 19940321    时间: 2024-11-13 17:05
标题: 十六进制转GBK编码文本后控制符号变成?
[C#] 纯文本查看 复制代码
private string ConvertFromHexadecimal(string hexadecimalText)
{
    if (hexadecimalText.Length % 2 != 0)
    {
        throw new ArgumentException("输入的十六进制字符串长度必须为偶数");
    }

    byte[] bytes = new byte[hexadecimalText.Length / 2];
    for (int i = 0; i < bytes.Length; i++)
    {
        bytes = Convert.ToByte(hexadecimalText.Substring(i * 2, 2), 16);
    }
    return Encoding.GetEncoding("GBK").GetString(bytes);
}



将十六进制转为GBK编码字符串时,很多特殊符号与控制符号变成了?,应该怎么规避这个问题。我需要下图中正确的导出效果那种。
希望有大佬帮我看看。


3b2f9dfb-44a4-413a-b96b-0382018d5d65.png (10.94 KB, 下载次数: 0)

3b2f9dfb-44a4-413a-b96b-0382018d5d65.png

作者: chenboss    时间: 2024-11-13 17:18
你把十六进制原文发出来
作者: 19940321    时间: 2024-11-13 17:21
chenboss 发表于 2024-11-13 17:18
你把十六进制原文发出来

00AD000000DF000000000200288600000085000000C14000009C4000018A00000D
作者: 19940321    时间: 2024-11-13 17:22
chenboss 发表于 2024-11-13 17:18
你把十六进制原文发出来

我转完后,哪些特殊字符或者控制符就变成?了,就是图中错误到处那样。
作者: chenboss    时间: 2024-11-13 18:21
19940321 发表于 2024-11-13 17:22
我转完后,哪些特殊字符或者控制符就变成?了,就是图中错误到处那样。

gbk转换没有问题,字符串以\0结束,每个?后面都少了一个nul,gbk把每个都转了,你需要自行判断哪些控制符号不需要转




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4