Otrzymałem oba dokumenty. I już na początku niespodzianka: oba pliki są w
formacie RTF, w tym ten z rozszerzeniem .doc. Więc problem w ogóle nie
dotyczy formatu .doc.
Otwieramy więc plik w Notatniku lub podobnym programie i patrzymy na jakieś
miejsce, gdzie jest źle zakodowana polska literka, np.:
{\cf1\afs24\rtlch \ltrch\loch\fs24\loch\f7
co pomy\'9cl\'b9
Widać więc kody 9C i B9 w miejscu literek ś i ą. Szybkie przejrzenie stron
kodowych pokazuje, że są to kody ze strony Windows1250. Dlaczego więc użyta
jest jakaś azjatycka? Przed tekstem widzimy znaczniki, w tym ostatni
znacznik \f7. Oznacza on, że do tekstu ma być zastosowana czcionka 7 z
tabeli czcionek. Tabela czcionek jest na początku pliku, w znaczniku
\fonttbl. Szukamy tam definicji \f7:
{\f7\froman\fprq2\fcharset128 Bookman Old Style;}
Widzimy, że ma być użyta czcionka Bookman Old Style wraz ze stroną kodową
128. Z tabelki na https://en.wikipedia.org/wiki/Rich_Text_Format widać, że
to strona Windows-932, czyli japońska. Tymczasem strona Windows-1250 ma kod
238. Czyli ktoś pomylił strony kodowe dla czcionek. Widać, że taki sam błąd
jest w przypadku czcionki \f10, czyli Mangal. Wystarczy więc w tym dwóch
miejscach podmienić 128 na 238. Analogicznie w drugim pliku. Naprawa tych
plików jest więc bardzo prosta i sprowadza się do zamiany jednej liczby na
drugą w kodzie RTF.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
|