将代码从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);

它运行良好,但总是将第一个字符显示为?

将代码从unicode转换为ansi代码时,我们会得到什么?作为第一个字符

好吧,这不是一个真正的答案,但在注释中编写代码太难了。

   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。也许它有一个一字节长度的前缀或其他什么。你必须分析一下这种情况。