我收到了来自一个应用程序的崩溃报告,该应用程序试图从之前编写的文件中读取 XML。在请求用户向我发送文件后,我将它与应该编写的文件进行了比较,发现了一个我以前没有遇到过的非常奇怪的问题。
一些(但不是全部)i
字符已被替换为ı
- 无点 i。例如,一个名为“title”的节点很好,但一个名为“initialdirectory”的节点将第一个 i 替换,第二个被单独保留,即ınitialdirectory
.
直到今天,我什至不知道有这样一个字符,但现在我知道了,但我只是不知道它是如何编写的——XML 是使用XmlWriter
UTF8 编码编写的。只是一个普通的日常写作,没有什么复杂的。
我通常(嗯,因为得到 Resharper 并且它因为跳过参数而对我大喊大叫)StringComparison.OrdinalIgnoreCase
在执行IndexOf
等操作时使用,但是我不知道在写入数据时应该如何执行此操作,除非我应该开始改变线程文化。
以前有没有人遇到过类似的问题,如果有,最好的解决方法是什么?