商标符号显示为大写字母T.

时间:2013-10-03 09:43:54

标签: c#

从xslx doc读取数据时遇到了一个特殊问题。 doc中的数据在圆圈内有'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);
                    }
                }

非常感谢任何线索/建议。

问候。

2 个答案:

答案 0 :(得分:1)

Windows控制台不支持Unicode,并且所有输出都会自动转换为非unicode应用程序的默认系统区域设置(基于ASCII)。 ASCII中没有'''符号,以下代码将打印T:

Console.WriteLine("™");

但是如果您将相同的字符串保存为Unicode文件,那么™将被正确保存:

System.IO.File.WriteAllText("text.txt", "™");
System.Diagnostics.Process.Start("text.txt");

答案 1 :(得分:0)

我认为它是显示字体的限制。您看到的TM符号很可能是unicode字符2122 =>或html中的&#0153

某些字体无法很好地显示这些较高的代码。尝试使用Arial而不是单色字体,你可能会看到差异。 Windows中的角色地图工具确实有帮助。

另一个选项是该项可能是符号字体系列中的符号。您始终可以使用c#查找您拥有的char的unicode字符。