Я анализирую файлы RTF 1.5+, сгенерированные Word 2003+, которые могут содержать содержимое на других языках. Этот контент обычно кодируется как шестнадцатеричные литералы (\ 'xx). Я хотел бы преобразовать эти литералы в значения Unicode.
Я знаю кодовую страницу моего документа по поиску ansicpg (\ ansi \ ansicpg1252).
Когда я использую кодовую страницу ansicpg для декодирования в Unicode, многие языки (например, французский), кажется, преобразуются в ожидаемые значения символов Unicode.
Однако, когда я вижу текст на русском языке (как показано ниже), кодовая страница 1252 декодирует содержимое на махинацию.
\ f277 \ lang1049 \ langfe1033 \ langnp1049 \ insrsid5989826 \ charrsid6817286
\ 'd1 \' f2 \ 'f0 \' e0 \ 'ed \' e8 \ 'f6 \' fb \ 'e1 \' e5 \ 'e7 \' ed \ 'e0 \' e7 \ 'e2 \' e0 \ ' Ed \ 'е8 \' FF. \ 'Дд \' f2
\ 'e0 \' f1 \ 'f2 \' f0 \ 'e0 \' ed \ 'e8 \' f6 \ 'e0 \' ed \ 'e5 \' e4 \ 'ee \' eb \ 'e6 \' ed \ ' e0
\ 'ee \' f2 \ 'ee \' e1 \ 'f0 \' e0 \ 'e6 \' e0 \ 'f2 \' fc \ 'f1 \' ff \ 'e2 \' f2 \ 'e0 \' e1 \ ' еь \ 'е8 \' f6 \ 'e5
\ 'e2 \' f1 \ 'ee \' e4 \ 'e5 \' f0 \ 'e6 \' e0 \ 'ed \' e8 \ 'e8.
Я предполагаю, что lang1049, langfe1033, langnp1049 должны предоставить мне подсказки, чтобы я мог программным путем выбрать другую (не по умолчанию) кодовую страницу для текста, на который они ссылаются? Если да, где я могу найти информацию, объясняющую, как сопоставить код lang * с кодовой страницей? Или я должен искать какую-то другую команду / директиву RTF, чтобы предоставить мне информацию, которую я ищу? (Или я должен использовать \ f277 в качестве ссылки на шрифт и посмотреть, есть ли у него связанная кодовая страница?)