如何使用System.IO.FileStream阅读希伯来语文本?

时间:2010-03-23 00:25:47

标签: c# filestream

我是否遗漏了某些东西,或者System.IO.FileStream没有读取包含希伯来语的Unicode文本文件?

    public TextReader CSVReader(Stream s, Encoding enc) 
    {

        this.stream = s;
        if (!s.CanRead) 
        {
            throw new CSVReaderException("Could not read the given CSV stream!");
        }
        reader = (enc != null) ? new StreamReader(s, enc) : new StreamReader(s);
    }

由于 乔纳森

3 个答案:

答案 0 :(得分:5)

FileStream只是一个字节流,它与语言/字符集无关。您需要一种编码来将字节转换为字符(包括希伯来语)并返回。

有几个课程可以帮助您,最重要的是System.Text.EncodingSystem.IO.StreamReader以及System.IO.StreamWriter

答案 1 :(得分:2)

可能会关闭该流。

来自CanRead上的msdn

  

如果派生自Stream的类   不支持阅读,打电话给   Read,ReadByte和BeginRead方法   抛出NotSupportedException。

     

如果流已关闭,则此属性   返回false。

答案 2 :(得分:0)

我打赌你只是没有使用正确的编码。如果您实际上应该将Encoding.Default(最常见)或Encoding.ASCII传递给该方法,则可能会传递Encoding.UTF8Encoding.Unicode

如果您确定使用的是正确的编码,请发布完整代码和文件示例。