在 windows 上出现错误,但在 linux 上出现日文字符错误

Getting error on windows but not on linux with japanese characters

我想从目录中读取文件名并打印出它们的名字。 这是我的代码:

png_files = []
for root, dirs, files in os.walk('output'):
    for file in files:
        png_files.append(file)
for name in png_files:
    print(name)

这只适用于 linux(不适用于 windows),我不知道为什么。我的文件有一些日文字符,我知道问题出在文件中,但不知道如何解决。

我收到这条消息:

'charmap' codec can't encode characters in position 19-27: character maps to <undefined>

我试过 encode('UTF-8')然后我得到:

b'forecast_traffic\xe4\xb8'

我知道当你有 b'' 时,这意味着它是一个字节串,所以我尝试了 name.encode('UTF-8').decode() 但我再次收到相同的错误消息,如果我尝试只编码我得到错误 :

'str' object has no attribute 'decode'

有谁知道如何解决这个问题以及我的错误在哪里?

"Windows console doesn't print Unicode" 错误已修复。检查下面的 link。 http://bugs.python.org/issue1602 而这个 https://wiki.python.org/moin/PrintFails

或使用 pip install win-unicode-console

安装 win_unicode_console