我遇到了一个奇怪的问题,而编码土耳其网站.在我的vb.net代码中,我使用了一个vb函数StrConv(s, VbStrConv.ProperCase),其中s是需要正确大小写的字符串。对于土耳其语站点,“”字符的大小写不正确。你有什么办法解决这个问题吗?谢谢.
StrConv(s, VbStrConv.ProperCase)
s
goqiplq21#
这个(臭名昭著的)案件被称为土耳其I问题。杰夫·阿特伍德(Jeff Atwood)写过:What's wrong with Turkey?如果你把一个土耳其语中的不带点的i加上去,它就变成了土耳其语中的I。然后,如果你把它去掉,它就变成了英语中的带点i。(也就是说,该操作不是可交换的。)参见this link的解决方案。
ztigrdn82#
我记得,土耳其语的“”是两种情况之一,转换为大写,然后再转换回小写不会产生原始字符串。另一个是德国的夏普“s”(即。)。StrConv调用的具体结果是什么?你的母语是土耳其语吗?你希望得到一个具体的结果吗?如果是:.NET中可能有一个bug。然后请发布您正在使用的确切.NET版本。否则,结果可能非常好,即使它对非土耳其用户来说看起来很奇怪。我是德国人,所以对于德国夏普s:没有大写字母。小写是“”。转换为大写:“SS”,回到小写:“ss”
ykejflvf3#
FileReader = New StreamReader(OpenFileDialog1.FileName, Encoding.Default)
Encoding.Default在vb.net中解决了此问题
Encoding.Default
3条答案
按热度按时间goqiplq21#
这个(臭名昭著的)案件被称为土耳其I问题。杰夫·阿特伍德(Jeff Atwood)写过:What's wrong with Turkey?如果你把一个土耳其语中的不带点的i加上去,它就变成了土耳其语中的I。然后,如果你把它去掉,它就变成了英语中的带点i。(也就是说,该操作不是可交换的。)参见this link的解决方案。
ztigrdn82#
我记得,土耳其语的“”是两种情况之一,转换为大写,然后再转换回小写不会产生原始字符串。另一个是德国的夏普“s”(即。)。
StrConv调用的具体结果是什么?
你的母语是土耳其语吗?你希望得到一个具体的结果吗?如果是:.NET中可能有一个bug。然后请发布您正在使用的确切.NET版本。
否则,结果可能非常好,即使它对非土耳其用户来说看起来很奇怪。
我是德国人,所以对于德国夏普s:没有大写字母。小写是“”。转换为大写:“SS”,回到小写:“ss”
ykejflvf3#
Encoding.Default
在vb.net中解决了此问题