【发布时间】:2018-09-03 21:59:24
【问题描述】:
到目前为止,我正在做这样的事情:
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。我是否以错误的方式处理问题
【问题讨论】:
-
这个问题有点糊涂。如果要检查字符串是否为 utf8 编码,则无需打印字符串。打印字符串的作用是,如果终端的字符集无法处理字符串中的某个字符,则会引发错误。所以你的小功能的结果实际上取决于用户的终端设置。您可能真正想要做的是找出字符串中是否有任何非ascii字符。
-
什么是
sys.stdout.encoding? -
哦,
s是什么?如果它是一个 python 字符串,那么它总是 utf-8 可编码的。
标签: python string python-3.x encoding utf-8