为什么"我"被"ı"取代

Ric*_*oss 2 c# xml culture localization

我收到了一个应用程序的崩溃报告,该应用程序尝试从之前编写的文件中读取XML.在请求用户将文件发送给我之后,我将其与应该写的文件进行了比较,发现了一个我之前没有遇到过的奇怪问题.

一些(但不是全部)i角色已被替换为?- 无点的我.例如,一个名为"title"的节点很好,但名为"initialdirectory"的节点有第一个被替换,第二个被单独留下,即?nitialdirectory.

直到今天,我甚至都不知道有这样一个角色,但现在我做了,我只是不知道它是如何编写的那样 - XML是XmlWriter用UTF8编码编写的.只是一般的日常写作,没有什么复杂的.

我通常(好吧,因为得到Resharper并且它在跳过参数StringComparison.OrdinalIgnoreCase时对我大吼大叫)在做IndexOf等时使用,但我在编写数据时应该如何做到这一点我不知所措,除非我应该开始改变线程文化.

以前有没有人遇到类似的问题,如果有的话,最好的方法是什么?

Jon*_*oni 5

在土耳其语中有两个i:一个带点,i一个带点,?.在大写字母中,第一个有一个点?,而第二个没有,I.

在某些时候,您的程序将InitialDirectory根据默认语言环境转换为小写,在世界某些地方已知该语言是土耳其语.要解决此问题,您可以使用固定的已知区域设置(例如美式英语)转换案例.

更新:更好的是,使用ToLowerInvariant()"不变文化"中将字符串转换为小写的方法.

  • 我认为使用不变文化而不是"en-US"更好.为了使这更容易,甚至还有一个快捷方式:[`ToLowerInvariant()`](http://msdn.microsoft.com/en-us/library/system.string.tolowerinvariant.aspx). (2认同)