2

I faced a strange problem while coding a Turkish site... In my vb.net code I use a vb function StrConv(s, VbStrConv.ProperCase) where s is the string that needs to be propercased. For the Turkish site, the "ı" character is not properly propercased. Do you have any ideas how to solve this? Thanks.

4

3 回答 3

4

我记得土耳其语“ı”是转换为大写然后再转换回小写不会产生原始字符串的两种情况之一。另一种是德语锐利“s”(即ß)。

StrConv 调用的结果究竟是什么?

您是以土耳其语为母语的人吗?您期望得到具体的结果吗?如果是:.NET CLR 中可能存在错误。然后请发布您正在使用的确切 .NET 版本。

否则结果可能非常好,即使对于非土耳其用户来说看起来很奇怪。

我是德国人,所以对于德国尖锐的 s:没有大写 ß。小写是“ß”。转换为大写:“SS”。并返回小写:“ss”

于 2013-06-18T13:09:29.870 回答
4

这个(臭名昭著的)案例被称为土耳其 I 问题。杰夫·阿特伍德(Jeff Atwood)曾写过:土耳其出了什么问题?如果将土耳其小写无点 i 大写,则变为大写英语 I。然后,如果将其小写,则变为带点的英语小写 i。(即,该操作不可交换。)请参阅此链接以获取解决方案。

于 2013-06-18T20:47:06.263 回答
0
FileReader = New StreamReader(OpenFileDialog1.FileName, Encoding.Default)

Encoding.Default在 vb.net 中解决了这个问题

于 2018-03-13T13:58:22.290 回答