Grzegorz Niemirowski w news:uq0to1$3v7$1$grzegorz@news.chmurka.net
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.
ups, faktycznie, oba sa rtf.
i wow, jaka mistrzowska analiza/metoda, dzieki :) Pozniej te chwyty
przepracuje na plikach, bowiem koniecznie chce z nich mobi wykonac w
calibre, czyli niech najpierw rtf-y beda doprowadze do jadalnej postaci.
I rozumiem (+ widze, sprawdzilem), ze jesli takim pogruchotanym plikiem
bylby (faktyczny) doc, to trzeba go najpierw zapisac/przekonwertowac do rtf.
btw:
ta metoda, com opisal wczesniej, dawala mi co prawda postac pliku typu
"....{\cf1\afs24\rtlch \ltrch\loch\fs24\loch\f7...." (mam na mysli "wyglad"
tekstu) i widzialem jakies zagadkowe nazwy czcionek, typu mangal wlasnie,
zaczalem nabierac przekonania, ze jest jakies "pomieszane" kodowanie,moze
inaczej: pomieszanie stron kodowania. Ale nie czulem, co z tym zrobic.
zobacze, jak bedzie problem, dopytam.
thx
|