Я просто установил PortablePython в своей системе, чтобы я мог запускать скрипты Python из PHP, и я получил некоторый очень базовый код (ниже), чтобы вывести список всех файлов в каталоге, однако он не работает с японскими именами файлов.Он отлично работает с английскими именами файлов, но выдает ошибки (ниже), когда я помещаю любой файл, содержащий японские символы, в каталог.
import os, glob
path = 'G:\path'
for infile in glob.glob( os.path.join(path, '*') ):
print("current file is: ", infile)
Работает нормально, используя 'PyScripter-Portable.exe', однако, когда я пытаюсь запустить 'PortablePython \ App \ python.exe "test.py"' в командной строке или из PHP, он плюетследующие ошибки:
current file is: Traceback (most recent call last):
File "test.py", line 5, in <module>
print("current file is: ", infile)
File "PortablePython\App\lib\io.py", line 1494, in write
b = encoder.encode(s)
File "PortablePython\App\lib\encodings\cp437.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 37-40: character maps to <undefined>
Я очень плохо знаком с Python и просто использую это, чтобы обойти проблему с PHP, так как я не могу читать имена файлов в кодировке Unicode в Windows ... Так что мне действительно нужно, чтобы это работало - любая помощь, которую вы можете мне дать, была бы полезна.