我们最近有一个用户输入英文文本,但似乎是在为西里尔文设置的计算机上完成的,因为一些字母,如" A“,实际上是西里尔文小写字母A,而不是拉丁文小写字母A。
我以为normalising会把西里尔文转换成拉丁文的等价物,但事实并非如此(我猜它们只是在显示方式上是等同的,而不是它们的意思)。
这是一个常见的问题吗?如果用户的电脑设置为使用西里尔字母,那么他们可能正在写英语,但是却使用了西里尔字母?
通常情况下,什么是发现这种情况并进行适当转换的安全方法?
发布于 2012-09-04 00:01:58
要检测西里尔文,只需使用正则表达式match \p{IsCyrillic}。一种更通用的方法是搜索任何非拉丁字符。如果有匹配的字符,则需要将这些字符替换为与其对应的拉丁字符。
https://stackoverflow.com/questions/12245916
复制相似问题