我在postgres 9 db中有用户名,例如
Ron R ty ♥☆♡★Green Eyes♥☆♡★
Sωℯℯт۞Angel 2 ᾧ➍ᾧ ty Լù☪ƖƒεƦ
db以utf-8编码
有没有办法在SQL中检测标准罗马字符之外是否存在这些特殊字符?
我尝试使用此处记录的convert
http://www.postgresql.org/docs/9.1/static/functions-string.html,但只有错误。
答案 0 :(得分:4)
尝试在基于unicode代码点的正则表达式字符范围上进行匹配。
WHERE uname ~ '[\x80-\xffff]';
或者,如果您想要更严格,可以排除任何非字母数字。
WHERE uname ~ '[^[:alnum:]]
其他角色类也可用。有关详细信息,请参阅the docs。