0

xslx ドキュメントからデータを読み取っているときに、特有の問題が発生しました。ドキュメント内のデータには、円内に「TM」記号があります。これを読むと大文字の「T」と出てきます。EPPlus ライブラリを使用して、次のようにデータを読み取ります。

var existingFile = new FileInfo(filePath);

                using (var package = new ExcelPackage(existingFile))
                {
                    ExcelWorkbook workBook = package.Workbook;
                    ExcelWorksheet currentWorksheet = workBook.Worksheets.First();

                    foreach (var item in currentWorksheet.Cells)
                    {
                        Console.WriteLine(item.Value);
                    }
                }

手がかり/提案は大歓迎です。

よろしく。

4

2 に答える 2

1

Windows コンソールは Unicode をサポートしていません。すべての出力は、非 Unicode アプリ (ASCII ベース) の既定のシステム ロケールに自動的に変換されます。ASCII には '™' 記号はありません。次のコードは T を出力します。

Console.WriteLine("™");

ただし、同じ文字列を Unicode としてファイルに保存すると、™ が正しく保存されます。

System.IO.File.WriteAllText("text.txt", "™");
System.Diagnostics.Process.Start("text.txt");
于 2013-10-03T09:58:21.830 に答える
0

表示フォントフェイスの制限だと思います。表示される TM 記号は、ほとんどの場合、Unicode 文字 2122 => ™ または&#0153html です。

一部のフォントでは、これらの上位コードがうまく表示されません。モノタイプ フォントではなく、Arial を使用してみてください。違いがわかる場合があります。Windows の文字マップ ツールは非常に役立ちます。

もう 1 つのオプションは、アイテムがシンボル フォント ファミリーのシンボルである可能性があることです。いつでも c# を使用して、持っている char の unicode 文字を見つけることができます。

于 2013-10-03T09:58:28.927 に答える