3

csvファイル内の文字が?の付いた黒いひし形として表示される問題が発生しています。途中で。

csvを解析するコードを記述しましたが、文字列がUnicode文字を正しく読み取らない理由がわかりません。それはおそらく私の実装と関係があります:

StreamReader readFile = new StreamReader(path)

try {
  while ((line = readFile.ReadLine()) != null) {
    string[] row = { "", "", "" };
    int currentItem = 0;
    bool inQuotes = false;
    if (skippedFirst && currentItem != 3) {
      for (int i = 0; i < line.Length; i++) {
        if (!inQuotes) {
          if (line[i] == '\"')
            inQuotes = true;
          else {
            if (line[i] == ',')
              currentItem++;
            else
              row[currentItem] += line[i];
          }
        } else {
          if (line[i] == '\"')
            inQuotes = false;
          else
            row[currentItem] += line[i];
        }
      }
      parsedFile.Add(row);
    }
    skippedFirst = true;
  }
4

1 に答える 1

9

ファイルを開くときにエンコーディングを指定します。

using (var sr = new StreamReader(@"c:\Temp\csvfile.csv", Encoding.UTF8)) {
}

CSV解析用のFilehelpersを調べることもできます。

http://www.filehelpers.com/quick_start.html

于 2012-06-18T10:48:31.380 に答える