Вопрос

Я пытаюсь увидеть, как будут выглядеть разные строки в разных кодировках ...

Например:

>>> str1 = "asdf"
>>> str1.encode('utf-16')
'\xff\xfea\x00s\x00d\x00f\x00'
>>> str1.encode('base64')
'YXNkZg==\n'

И все они получают мне то, что я хочу.

Но я хотел бы увидеть, как будут выглядеть определенные строки в GBK, GB2312 или GB18030.

>>> str1.encode('gbk')
'asdf'
>>> str1.encode('gb2312')
'asdf'
>>> str1.encode('gb18030')
'asdf'

Разве результаты не должны быть чем -то иным, кроме «ASDF»?

У меня есть Python 2.7, и я вижу gbk.py, а другие файлы в Lib/Concodings

Мне было интересно, не вижу ли я никаких изменений в выводе, потому что эти буквы будут отображаться в этом кодировании, или потому что мне нужно каким -то образом включить использование этих кодировки (какой -то импорт необходим?) ...

Это было полезно?

Решение

Пока используются только значения байтов 0-127, эти кодировки эквивалентны ASCII. То же самое верно для UTF-8. Чтобы действительно увидеть разницу, попробуйте с некоторыми настоящими китайцами.

Другие советы

От Википедия страница:

Персонаж кодируется как 1 или 2 байта. Байт в диапазоне 00–7F - это единственный байт, который означает то же самое, что и в ASCII. Строго говоря, в этом диапазоне 96 символов и 32 кода управления.

Так что нет, ваша тестовая строка символов ASCII не должна кодировать как нечто другое (по крайней мере, для GBK, я не проверял разновидности).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top