小弟,在开发中遇到了这样一个问题。
在读取一种文件的时候,这种文件的文件结构里,他同时采用了Big-Endian和Litter-Endian编码来存储数据。在.NET中读取和转化这辆中编码方式的方法是什么了。我试了半天都没有试出来。望各位大小帮忙解决。小弟原来在java中实现过。由于对.NET使用时间不是很长,对他的有些方法不了解。。
望各位帮忙。
望给出源码!100分给出。

解决方案 »

  1.   

    获取采用 Big-Endian 字节顺序的 Unicode 格式的编码。
    [C#]
    public static Encoding BigEndianUnicode {get;}属性值
    采用 Big-Endian 字节顺序的 Unicode 格式编码。备注
    Unicode 字符可以按两种不同的字节顺序存储:big-endian 和 little-endian。在 Little-Endian 平台(如 Intel 计算机)上,按 Little-Endian 顺序存储 Unicode 字符通常效率更高。但是,许多其他平台也可以按 Big-Endian 顺序存储 Unicode 字符。
    Unicode 文件可以通过字节顺序标记 (U+FEFF) 来区分,该标记在 big-endian 平台上表示为十六进制 0xFE 0xFF,在 little-endian 平台上则表示为十六进制 0xFF 0xFE。
    示例[C#] 
    using System;
    using System.IO;namespace BigEndianExample
    {
       public class Class1 
       {
          public static void Main(string[] args) 
          {
             // Read a text file saved with Big Endian Unicode encoding.
             System.Text.Encoding encoding = System.Text.Encoding.BigEndianUnicode;
             StreamReader reader = new StreamReader("TextFile.txt", encoding);
             string line = reader.ReadLine();
             while (line != null) 
             {
                Console.WriteLine(line);
                line = reader.ReadLine();
             }
           }
        }
    }----->摘自MSDN ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemTextEncodingClassBigEndianUnicodeTopic.htm
      

  2.   

    Richardhu(学无止境) :谢谢你的回复,不过我们的是如何在一个文件中同时读取两种编码方式的数据,
    也就是说,在读出数据后,如何转换这辆中编码。
    我看了一下UnicodeEncoding的帮助,不是很明白,望各位说明
      

  3.   

    Encoding 可以转化,但是怎么区别两种不同的编码就不清楚了
      

  4.   

    Richardhu(学无止境) :你可以按照两种方式来读取,然后分别截取其中想要的部分,组合成想要得结果.谢谢你在次回答我的问题。但是,这种方法感觉并不好。有没有其他好的方法呢 ? lemong(風之影) :
    这样转化的,望给个简单的例子。谢谢
      

  5.   

    using System;
    using System.IO;namespace BigEndianExample
    {
       public class Class1 
       {
          public static void Main(string[] args) 
          {
             // Read a text file saved with Big Endian Unicode encoding.
             System.Text.Encoding encoding = System.Text.Encoding.BigEndianUnicode;
             StreamReader reader = new StreamReader("TextFile.txt", encoding);
             string line = reader.ReadLine();
             while (line != null) 
             {
                Console.WriteLine(line);
                line = reader.ReadLine();
             }
           }
        }
    }
      

  6.   

    希望大家不要只是把MSDN上的例子贴出来。