2017-02-16 11 views
0

Когда я открываю файл с Debian-х less я могу видеть, что некоторые из символов представлены как <D5>:Как получить шестнадцатеричный индекс специального символа, представленного в debian меньше, чем <D5> или аналогичный?

enter image description here

или <93>:

enter image description here

Мой вопрос заключается в том, чтобы перевести этот код в hex?

Дополнительная информация: кодирование моего файла mac_roman, моя консоль кодирования utf-8

+1

Ну, я бы сказал, '' _is уже_ hex. Не могли бы вы более четко объяснить, что вы хотите сделать? – Dario

+0

Я просто хочу знать, как заменить этот и другие «неправильные» символы. Мой сценарий: a. Я открываю файл и нахожу '<..>' символов; б. Я конвертирую коды этих символов в шестнадцатеричные; с. Я заменяю эти символы на другие, которые находятся в utf-8 [list] (http://www.fileformat.info/info/charset/UTF-8/list.htm) – AstraSerg

ответ

0

Я нашел решение. Прежде всего файла должны быть преобразованы в UTF-8:

iconv -f macintosh -t UTF-8 < INPUT_FILE_PATH 

Теперь я могу заменить не-UTF символов. Пример в python3:

replace_table = { 
    ord('’'): "´", 
    ord('ì'): '«', 
    ord('î'): '»', 
    # to find new spec chars: iconv -f macintosh -t UTF-8 < INPUT_FILE_PATH 
} 
with open('filename', 'r', encoding='mac_roman', newline='') as f: 
    [l.translate(replace_table) for l in f.readlines()]