关于python:如何检查字符串是否只包含UTF-8字符

How to check if a string contain only UTF-8 characters

到目前为止,我正在做这样的事情:

1
2
3
4
5
6
7
def is_utf8(s):
    try:
        x=bytes(s,'utf-8').decode('utf-8', 'strict')
        print(x)
        return 1
    except:
        return 0

唯一的问题是,我不想让它打印任何东西,我想删除print(x),当我这样做时,函数停止正常工作。例如,如果我这样做:print(is_utf8("H?tst")),当打印在函数中时,它返回0,否则它打印1。我是不是用错误的方式处理这个问题


您可以使用chardet模块检测未知编码。例如,如果a是字节数组,那么您可以这样确定编码:

1
2
3
4
import chardet

b = chardet.detect(a)
print(b["encoding"])