Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将亚洲字符写入文件时出现UNICODEENCODEER错误_Python_Python 3.x_Encoding - Fatal编程技术网

Python 将亚洲字符写入文件时出现UNICODEENCODEER错误

Python 将亚洲字符写入文件时出现UNICODEENCODEER错误,python,python-3.x,encoding,Python,Python 3.x,Encoding,在尝试将亚洲字符写入文件时,我一直都会遇到此错误-我可以在空闲状态下打印字符,虽然不是在命令行中,但当我尝试将字符写入文件时,我会遇到此错误: Traceback (most recent call last): File "C:\Users\Tai\Desktop\Development\playlistcreator\main.py", line 21, in <module> playlistcreator.addtoplaylist(list_of_paths,"

在尝试将亚洲字符写入文件时,我一直都会遇到此错误-我可以在空闲状态下打印字符,虽然不是在命令行中,但当我尝试将字符写入文件时,我会遇到此错误:

Traceback (most recent call last):
  File "C:\Users\Tai\Desktop\Development\playlistcreator\main.py", line 21, in <module>
    playlistcreator.addtoplaylist(list_of_paths,"C:\\Users\\Tai\\Desktop\\New Music\\testplaylist.m3u8")
  File "C:\Users\Tai\Desktop\Development\playlistcreator\playlistcreator.py", line 74, in addtoplaylist
    playlistFile.write(track + '\n')
  File "C:\Users\Tai\AppData\Local\Programs\Python\Python35-32\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 56-57: character maps to <undefined>

您需要使用适合字符的编码

playlistFile.write(track.encode(encoding=some_encoding) + '\n')
我想一些_encode='utf-8'可以,但不是很确定


默认情况下,IDLE可能使用不同的编码,这就是它在那里工作的原因。

打开文件时,需要指定文件的编码,例如:

with open(os.path.basename(playlist_path), 'a+', encoding='UTF-8') as playlistFile:

否则,Python默认将控制台编码ANSI用于文件,在本例中,这是扩展拉丁语-1的Windows名称。

我尝试了它,但遇到了另一个错误,尽管是另一个错误:playlifile.writetrack.encodecoding=utf-8+'\n'类型错误:无法将字节压缩到strI,我通过将字符串设置为字节文字来修复它,但是现在我又出现了相同的错误,使用了不同的字符集-我可能需要再次更改编码-但是感谢您将我设置在正确的轨道上@泰姆。如果您使用的是Python 3,则此建议仅适用于Python 2。提醒自己:面对歧义,请拒绝猜测的诱惑。@AnttiHaapala啊,我不知道这两者之间的编码有什么不同-很公平!
with open(os.path.basename(playlist_path), 'a+', encoding='UTF-8') as playlistFile: