【发布时间】:2013-04-04 21:40:05
【问题描述】:
我收到了来自一个应用程序的崩溃报告,该应用程序试图从之前写入的文件中读取 XML。在请求用户将文件发送给我后,我将它与应该编写的内容进行了比较,发现了一个我以前从未遇到过的非常奇怪的问题。
部分(但不是全部)i 字符已替换为 ı - 一个无点的 i。例如,一个名为“title”的节点很好,但一个名为“initialdirectory”的节点将第一个 i 替换,第二个被保留,即ınitialdirectory。
直到今天我什至不知道有这样一个字符,但现在我知道了,我只是不知道它是如何编写的 - XML 是使用带有 UTF8 编码的XmlWriter 编写的。只是一个普通的日常写作,没有什么复杂的。
我通常(嗯,自从获得 Resharper 并且它因为跳过参数而对我大喊大叫)在执行 IndexOf 等时使用 StringComparison.OrdinalIgnoreCase,但我不知道在编写时应该如何执行此操作数据,除非我应该开始改变线程文化。
以前有没有人遇到过类似的问题,如果有,最好的处理方法是什么?
【问题讨论】:
-
这是“土耳其语 i”问题 - 搜索它。喜欢stackoverflow.com/questions/444798/… 或者更好的是stackoverflow.com/questions/3550213/…
-
也许你有一个
typo,你想要在其中进行替换我的意思是i和l在键盘上是彼此正确的 -
好吧,我不是
Turkish,所以我不知道..LOL
标签: c# xml localization culture