Я работаю с двоичным файлом, который ссылается на другой файл, используя абсолютные пути. Путь содержит как символы японского, так и ascii.Работа со строками со смешанными кодировками в python 3.x
Длина строки задана, поэтому я могу просто прочитать, что многие байты и преобразовать ее в строку.
Однако проблема заключается в попытке преобразования строки. Если я укажу кодировку как ascii, она будет терпеть неудачу на японских символах. Если я укажу его как японскую кодировку (shift-jis или что-то еще), он не будет правильно читать английские символы.
Один байт используется для каждого символа ascii, а для каждого японского символа используются два байта.
Что является самым быстрым и чистым способом преобразования этих байтов в строку? Кодировки известны. Будет ли такой же метод работать в более старых версиях python.
Не смешивайте кодировки; используйте utf-8 для всего. – geoffspear
Это не сработает, если источник, который я читаю, не использует utf-8 для всего. У многих других файлов, с которыми я работаю, есть разработчики, которые не используют utf-8 (будь то китайский, японский или корейский). – MxyL
делает использование mybytestring.decode ('shift-jis') не работает? shift-jis теоретически совместим с ascii, отличным от, возможно, \ и ~ символов, даже если он не является стандартом. – gps