我有一个包含网址的文件,其中一个是http://en.wikipedia.org/wiki/São_Paulo。注意'ã'。当我读取网址(在C#中)并尝试打印时,它显示为http://en.wikipedia.org/wiki/S?o_Paulo。
我尝试按以下方式阅读网址:
List<string> urls = System.IO.File.ReadAllLines(wikiURL_FilePath, Encoding.UTF8).ToList();
请注意,我已经通过了第二个参数以UTF8格式读取它,但问题仍未解决。如何以正确的形式阅读和存储字符串?
答案 0 :(得分:3)
尽管有UTF-8 BOM,但您显示的数据根本不是UTF-8; São的UTF-8是53-C3-A3-6F;你有53-E3-6F,这是...基本的多语言平面数据的正确的unicode代码点,但错误地编码为磁盘为UTF-8。你可能需要修复写这个文件的代码,或者:同意编码是什么(它可能是一个单字节的代码页,但你需要同意哪个,否则一切都崩溃了)。
可能看起来编码(如果我们拿走BOM):