无法在python中将字符串解码为utf-8
我试图将包含emojies的字符串保存到一个.txt文件中,但在运行代码时总是出现错误 代码: 错误:无法在python中将字符串解码为utf-8,python,string,encoding,utf-8,Python,String,Encoding,Utf 8,我试图将包含emojies的字符串保存到一个.txt文件中,但在运行代码时总是出现错误 代码: 错误: subject_proper = subject_proper.decode('utf-8') AttributeError: 'str' object has no attribute 'decode' 编辑: 如果我删除.decode,则会出现以下错误: UnicodeEncodeError: 'UCS-2' codec can't encode characters in positi
subject_proper = subject_proper.decode('utf-8')
AttributeError: 'str' object has no attribute 'decode'
编辑:
如果我删除.decode,则会出现以下错误:
UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 65-65: Non-BMP character not supported in Tk
编辑2:
示例文本:铁人三项运动员的圣诞礼物⛄
我已经把绳子刮下来了
这个方法以前是有效的,但是我不知道为什么它不适用于这个代码。我曾试图在别处找到答案,但不幸的是没有成功
我希望有人有个想法:)如果您的文件设置为utf-8,但其中只有ASCII字符,我认为编码不重要
一旦你有了一个str
,就不再需要解码了。如果您删除.decode('utf-8')
,错误可能会消失
如果您希望代码可能具有utf-8值,可以使用
try except
块来捕获AttributeError
,然后相应地对其进行操作。这可能就是Python 2和Python 3之间的区别。这是否回答了您的问题?解码在字节上工作<代码> B'一些文本。解码(“UTF -8”)将工作,但<代码>某些文本。解码(“UTF -8”)不会。请考虑添加一些您试图解析/解码的文本到问题。我找出问题所在。代码在pycharm中运行,没有问题,但不会在空闲状态下运行。删除控制台的打印输出已修复该问题。它现在正在打印到.txt,没有问题。不幸的是,这不起作用。我得到以下错误:UnoDeEnCo错误:“UCS-2”编解码器不能编码位置65-65中的字符:TKE中不支持的非BMP字符可能考虑<代码> SubjdItAuth= EndoCuthION。我不确定您要解析哪些字符,但python似乎不喜欢它们。考虑检查
UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 65-65: Non-BMP character not supported in Tk