Python 如何检查字符串是否仅包含UTF-8字符

Python 如何检查字符串是否仅包含UTF-8字符,python,string,python-3.x,encoding,utf-8,Python,String,Python 3.x,Encoding,Utf 8,到目前为止,我正在做这样的事情: def is_utf8(s): try: x=bytes(s,'utf-8').decode('utf-8', 'strict') print(x) return 1 except: return 0 唯一的问题是我不想让它打印任何东西,我想删除print(x),当我这样做时,函数会停止正常运行。 例如,如果我这样做:print(是�tst”)在函数中打印时返回0,否则打印1。我是

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

def is_utf8(s):
    try:
        x=bytes(s,'utf-8').decode('utf-8', 'strict')
        print(x)
        return 1
    except:
        return 0
唯一的问题是我不想让它打印任何东西,我想删除
print(x)
,当我这样做时,函数会停止正常运行。 例如,如果我这样做:
print(是�tst”)
在函数中打印时返回0,否则打印1。我是否以错误的方式处理问题

您可以使用模块检测未知编码。例如,如果
a
是一个字节数组,则可以如下确定编码:

import chardet

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

这个问题可能重复的地方有点混乱。如果要检查字符串是否为utf8编码,则无需打印该字符串。打印字符串的作用是,如果终端的字符集无法处理字符串中的一个字符,则会引发错误。因此,您的小功能的结果实际上取决于用户的终端设置。您可能真正想做的是找出字符串中是否有任何非ascii字符。什么是
sys.stdout.encoding
?噢,什么是
s
?如果它是python字符串,那么它总是utf-8可编码的。