【问题标题】:How to read Hebrew text using System.IO.FileStream?如何使用 System.IO.FileStream 阅读希伯来语文本?
【发布时间】:2011-01-30 14:27:24
【问题描述】:

是我遗漏了什么还是 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);
    }

谢谢 乔纳森

【问题讨论】:

  • 你错过了一些东西。您遇到了什么问题?
  • 这种明目张胆的反犹太主义正是很多人还没有转向 C# 的原因。
  • 你传入的是哪种编码?

标签: c# filestream


【解决方案1】:

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

有几个课程可以帮助您解决这个问题,最重要的是 System.Text.EncodingSystem.IO.StreamReaderSystem.IO.StreamWriter

【讨论】:

    【解决方案2】:

    流可能已关闭。

    来自msdnCanRead

    如果从 Stream 派生的类 不支持阅读,来电 Read、ReadByte 和 BeginRead 方法 抛出 NotSupportedException。

    如果流被关闭,这个属性 返回 false。

    【讨论】:

      【解决方案3】:

      我敢打赌,您根本没有使用正确的编码。当您实际上应该将 Encoding.UTF8(最常见)或 Encoding.Unicode 传递给该方法时,您可能会传递 Encoding.DefaultEncoding.ASCII

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

      【讨论】:

        猜你喜欢
        • 2010-11-06
        • 2022-06-21
        • 2011-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-02
        • 2013-11-08
        • 2017-11-23
        相关资源
        最近更新 更多