在.NET中如何在一个文件中读取使用了Big-Endian和Litter-Endian两种不同的编码方式的数据。十万火急,搞定马上给分!

kunbone 2005-05-13 10:46:13
小弟,在开发中遇到了这样一个问题。
在读取一种文件的时候,这种文件的文件结构里,他同时采用了Big-Endian和Litter-Endian编码来存储数据。在.NET中读取和转化这辆中编码方式的方法是什么了。我试了半天都没有试出来。

望各位大小帮忙解决。

小弟原来在java中实现过。由于对.NET使用时间不是很长,对他的有些方法不了解。。
望各位帮忙。


望给出源码!100分给出。
...全文
178 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
evaELLIS 2005-05-13
  • 打赏
  • 举报
回复
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();
}
}
}
}
kunbone 2005-05-13
  • 打赏
  • 举报
回复
Richardhu(学无止境) :你可以按照两种方式来读取,然后分别截取其中想要的部分,组合成想要得结果.

谢谢你在次回答我的问题。

但是,这种方法感觉并不好。有没有其他好的方法呢 ?

lemong(風之影) :
这样转化的,望给个简单的例子。谢谢
lemong 2005-05-13
  • 打赏
  • 举报
回复
Encoding 可以转化,但是怎么区别两种不同的编码就不清楚了
Richardhu 2005-05-13
  • 打赏
  • 举报
回复
你可以按照两种方式来读取,然后分别截取其中想要的部分,组合成想要得结果.
kunbone 2005-05-13
  • 打赏
  • 举报
回复
Richardhu(学无止境) :谢谢你的回复,不过我们的是如何在一个文件中同时读取两种编码方式的数据,
也就是说,在读出数据后,如何转换这辆中编码。
我看了一下UnicodeEncoding的帮助,不是很明白,望各位说明
Richardhu 2005-05-13
  • 打赏
  • 举报
回复
获取采用 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
kunbone 2005-05-13
  • 打赏
  • 举报
回复
自己写了一个转换的方法,解决了。
郁闷。

谁有好的方法。可以留贴。1个月后给分
kunbone 2005-05-13
  • 打赏
  • 举报
回复
希望大家不要只是把MSDN上的例子贴出来。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧