Python 3.8.2 / 2.7.9 不能输出UTF-8?
Python 3.8.2 / 2.7.9 cannot output UTF-8?
我有一个奇怪的问题,我尝试了该字段的所有建议答案,但我可能遗漏了一些本应非常简单的答案。我有以下代码:
def parseinvalid():
newfile = open('outputBlueTooth.txt', 'r')
print('Parsing Invalid')
for line in newfile:
splitted = line.split("]")
if len(splitted) > 6:
if len(splitted[1]) > 2 and len(splitted[3]) > 2 and len(splitted[5]) > 2 and len(splitted[6]) > 2:
oldvalue = splitted[5].split(',')[0]
newvalue = float(oldvalue) * 0.70
print('blue-laut]'+splitted[1]+']'+splitted[3]+']'+str(float(oldvalue))+']'+str(float(newvalue))+']'+splitted[6]+']\n\r')
和这个字符串:Micro SD-Kartensteckplatz für MP3-MusikwiedergabeMicro SD
从打印中获取输出 Micro SD-Kartensteckplatz für MP3-MusikwiedergabeMicro SD
尽管脚本开头是:# -*- coding: UTF-8 -*-
# -*- coding: UTF-8 -*-
仅影响代码中的字符串文字。它与代码中的任何其他字符串无关,即从文件中读取的字符串。
这里最有可能的问题是您没有向 open
提供 encoding
,如果没有提供默认编码,这在选择默认编码方面做得非常糟糕。
将 open('outputBlueTooth.txt', 'r')
更改为 open('outputBlueTooth.txt', encoding='utf8')
(不需要模式 r
,因为它是默认模式)。
我有一个奇怪的问题,我尝试了该字段的所有建议答案,但我可能遗漏了一些本应非常简单的答案。我有以下代码:
def parseinvalid():
newfile = open('outputBlueTooth.txt', 'r')
print('Parsing Invalid')
for line in newfile:
splitted = line.split("]")
if len(splitted) > 6:
if len(splitted[1]) > 2 and len(splitted[3]) > 2 and len(splitted[5]) > 2 and len(splitted[6]) > 2:
oldvalue = splitted[5].split(',')[0]
newvalue = float(oldvalue) * 0.70
print('blue-laut]'+splitted[1]+']'+splitted[3]+']'+str(float(oldvalue))+']'+str(float(newvalue))+']'+splitted[6]+']\n\r')
和这个字符串:Micro SD-Kartensteckplatz für MP3-MusikwiedergabeMicro SD
从打印中获取输出 Micro SD-Kartensteckplatz für MP3-MusikwiedergabeMicro SD
尽管脚本开头是:# -*- coding: UTF-8 -*-
# -*- coding: UTF-8 -*-
仅影响代码中的字符串文字。它与代码中的任何其他字符串无关,即从文件中读取的字符串。
这里最有可能的问题是您没有向 open
提供 encoding
,如果没有提供默认编码,这在选择默认编码方面做得非常糟糕。
将 open('outputBlueTooth.txt', 'r')
更改为 open('outputBlueTooth.txt', encoding='utf8')
(不需要模式 r
,因为它是默认模式)。