【发布时间】:2014-10-16 01:08:18
【问题描述】:
我正在将一系列旨在使用特殊字体正确显示的字符串转换为可在任何地方使用的 unicode 版本。这只是一组美化的字符串替换:
"e]" -> "ἓ"
等等
我正在使用将编码设为 UTF-8 的流式阅读器阅读文本。一切运作良好。但是有一些用于替换标点符号的字符不起作用。我可以在 notepad++ 中将它们视为十六进制序列(编码设置为 UTF-8),但是当我阅读它们时,它们都被简化为相同的字符(黑色菱形中的“无法显示”问号)。
StreamReader srnorm = new StreamReader("C:\\Users\\John\\Desktop\\bgt.txt", Encoding.UTF8);
string norm = srnorm.ReadLine();
我应该将它作为二进制文件读取并从那里工作还是我的编码非常错误?
(Full size image) 当我读到它时,我得到以下信息:
o]j ouvci。嗯。 'avpo'la,bh| pollaplasi,ona evn tw/|凯尔/|头,tw|凯。 evn tw/| aivw/ni tw/| evrcome,nw| zwh.n aivw,nion。
【问题讨论】:
-
您好,欢迎来到 Stack Overflow。请阅读有关提问的 Stack Overflow 帮助,以确保您的问题获得最佳答案的可能性最高。特别是:带有描述的代码很棒。没有描述的代码是可以通过的。没有代码的描述几乎是无用的。你能编辑你的问题并向我们展示你在做什么吗?
-
嗨@Amadan,我不确定要添加什么。我可以向您展示我的流式阅读器创建和 ReadLine(),但我认为它不会那么有启发性。我已经添加了我的 ReadLine 产生的字符串。
-
谢谢,它变得越来越清晰(而且比抱歉更安全)。我收集了
bgt.txt转换后的文件?0xCE、0xC5和0xD0不是有效的 UTF-8。 -
源可以选择导出为 .txt。它还允许导出到 .rtf,从而在 .rtf 文件中生成类似 \'c5 的序列。如果不是有效的 UTF-8,是不是编码错误?
-
可能编码错误,是的。 “源可以选择导出......”是什么意思?你是如何生成文件的,它的编码是什么?