将代码从unicode转换为ansi代码时,我们会得到什么?作为第一个字符
本文关键字:代码 什么 字符 第一个 unicode 转换 ansi 我们 | 更新日期: 2023-09-27 18:20:32
当将代码从unicode转换为ansi代码时,我们会得到什么?作为第一个字符。请帮助
byte[] ansibyte = System.Text.ASCIIEncoding.Convert(System.Text.Encoding.UTF8, System.Text.Encoding.GetEncoding(865), unibytes);
它运行良好,但总是将第一个字符显示为?
好吧,这不是一个真正的答案,但在注释中编写代码太难了。
class StackOverflow
{
byte[] unibytes; // To be replaced by your data
public void JustTesting()
{
string s;
// Single-step these under the debugger, examine s after each attempt to see what works
s = Encoding.Unicode.GetString(unibytes);
s = Encoding.UTF8.GetString(unibytes);
s = Encoding.BigEndianUnicode.GetString(unibytes);
// Once you have the correct decoding, re-encode to code page 865
byte[] asciiLikeByteArray = Encoding.GetEncoding(865).GetBytes(s);
}
}
我分两个阶段进行的意思是,首先将Unicode字节数组转换为C#字符串,然后检查该字符串。这可能就是问题所在。然后,当C#字符串正常时,将其转换为新的字节数组——问题不太可能出现在那个阶段。
在上面的代码中,我建议从"Unicode"到C#字符串进行三种可能的转换。Unicode可以有几种不同的变体。
如果这三种可能性都不起作用,那么您的字节数组很可能根本不是纯Unicode。也许它有一个一字节长度的前缀或其他什么。你必须分析一下这种情况。