Mysql多字节字符的正则表达式

时间:2016-09-15 14:08:44

标签: mysql regex

我尝试过使用REGEXP:

'^[A-Za-z0-9ÿ!#$%&*.?@ˆ^_¡\-¦¨¯´¸¿˜‘’‚“”„\'‹›¢£¤¥€±«»×÷§©¬®°µ¶·…†‡•‰¼½¾¹²³ªÇºß`]+$' 

但它也接受RE中不存在的字符ϢϗγΔ

任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

MySQL中的REGEXP只处理字节,不是多字节字符。

另一方面,您的字符集似乎完全在latin1字符集中。

所以,我建议您将字符串转换为latin1,然后使用REGEXP进行测试(以避免丢失少数字符),然后转换回来,看看你是否比开始时更多?。问号表示转换 latin1失败,因为某些字符缺少latin1编码。

请描述您的查询的意图;可能有一种更简单的方法来处理它。

答案 1 :(得分:1)

这已经修复了,它的校对问题我已经将整理从utf8_unicode_c1更改为utf8_general_ci。