欢迎来到魔幻小生的博客

python检测字符串中是否有生僻字

最近工作中遇到远古老版本产品中生僻字会显示乱码问题,需要实现检测字段是否包含生僻字以及一些非法字符如 ~!@#$%^&*

首先使用 python 匹配非法字符,可以用 re 函数库实现。

pattern = re.compile(r"[~!@#$%^&* ]")

常见生僻字 翀珪屌囧

对于生僻字的定义,经询问同事应该是非 GB2312 的汉字为生僻字,只需要匹配 GB2312 字符。

可以使用 unicode_string.encode('GB2312') 转换字符串,如果抛出 UnicodeEncodeError 异常则有生僻字。

完整代码如下:

def is_rare_name(str):

    pattern = re.compile(r"[~!@#$%^&* ]")
    match = pattern.search(str)
    if match:
        print(match.group())
        return True
    try:
        str.encode("gb2312")
    except UnicodeEncodeError:
        return True
    return False
posted @ 2023-07-28 17:15  魔幻小生  阅读(139)  评论(0编辑  收藏  举报