Piszę pliki RTF 1.5+ generowane przez Word 2003+, które mogą zawierać treści z innych języków. Ta treść jest zwykle zakodowana jako literały szesnastkowe (\ 'xx). Chciałbym przekonwertować te literały na wartości Unicode.Jak wykryć stronę kodową używaną podczas konwersji literałów hexowych RTF na Unicode
Znam stronę kodową mojego dokumentu, szukając ansicpg (\ ansi \ ansicpg1252).
Kiedy używam strony kodowej ansicpg do dekodowania do Unicode, wiele języków (np. Francuski) wydaje się konwertować na wartości char unicode, których się spodziewam.
Jednak gdy widzę tekst rosyjski (jak poniżej), strona kodowa 1252 dekoduje zawartość do jibberish.
\ f277 \ lang1049 \ langfe1033 \ langnp1049 \ insrsid5989826 \ charrsid6817286 \ 'D1 \ F2 \ 'f0 \' e0 \ 'ed \' e8 \ 'f6 \' FB \ 'e1 \' E5 \' e7 \ 'ed \' e0 \ 'e7 \' e2 \ 'e0 \' ed \ 'e8 \' ff. \ 'dd \' 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 \ 'eb \' e8 \ 'f6 \' e5 \ 'e2 \' f1 \ 'ee \' e4 \ 'e5 \' f0 \ 'e6 \' e0 \ 'ed \' e8 \ 'e8.
Zakładam, że lang1049, langfe1033, langnp1049 powinien zapewnić mi wskazówki, więc mogę programowo wybrać inny (non-domyślne) stronę kodową dla tekstu, że odwołanie? Jeśli tak, to gdzie mogę znaleźć informacje wyjaśniające, jak zamapować kod języka na stronę kodową? Czy powinienem szukać innego polecenia/dyrektywy RTF, by dostarczyć mi informacji, których szukam? (Czy muszę użyć \ f277 jako odnośnika do czcionki i sprawdzić, czy ma on powiązaną stronę kodową?)
Dziękuję Bobince - to dokładnie wskazówka, której potrzebowałem. Masz rację, cały proces jest niewygodny, skomplikowany i obciążający. – Malcolm