Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> RTF - kodowanie
wucxxl
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 4.11.2007

Ostrzeżenie: (0%)
-----


Witam


Mam następujący problem.
Podczas wstawiania tekstu do pliku RTF polskie znaki gubią kodowanie. Dane wstawiane do pliku pochodzą za bazy danych MySQL. Kodowanie bazy jest ustawione na UTF-8, tak samo kodowanie pliku oraz serwera. Do stworzonej pliku korzystam z następującej metody. Mam gotowy szablon pliku w który są po wstawiane znaczniki. Następnie skrypt otwiera plik RTF za pomocą fopen(), a do zamiany znaczników stosowania jest funkcja str_replace.

Nagłówek rtf-a

Kod
{\rtf1\ansi\deff1\adeflang1025
   {\fonttbl{\f0\froman\fprq2\fcharset0 DejaVu Sans;}{\f1\froman\fprq2\fcharset238 Times New Roman CE;}{\f2\fnil\fprq0\fcharset0 Times{\*\falt Times New Roman};}{\f3\fnil\fprq0\fcharset0 Helvetica;}{\f4\froman\fprq2\fcharset238 Times New Roman CE;}{\f5\fnil\fprq2\fcharset0 DejaVu Sans;}}
   {\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
   {\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang1045\ltrch\dbch\af1\langfe1045\hich\f1\fs24\lang1045\loch\f1\fs24\lang1045\snext1 Normal;}
   {\s2\sb240\sa120\keepn\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af5\afs28\lang1045\ltrch\dbch\af5\langfe1045\hich\f3\fs28\lang1045\loch\f3\fs28\lang1045\sbasedon1\snext3 header;}
Go to the top of the page
+Quote Post
.radex
post
Post #2





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


tu musi być Twój błąd. Ale z bazą danych są rzeczywiście problemy. Nie liczy się to, czy baza jest UTF-8, tylko czy dane zostały wprowadzone do bazy danych poprzez stronę o kodowaniu UTF-8. No i lepiej, aby to nie było poprzez phpmyadmina, bo on ma strasznie popaprane kodowanie.
Go to the top of the page
+Quote Post
Czadus
post
Post #3





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

Ostrzeżenie: (0%)
-----


mam błąd natury takiej, że mimo kodowania znaków w UTF-8 i próby przekodowania ich jakikolwiek inny format nie dają rezultatu. Plik rtf zawiera krzaki. Jak przekodować tekst w UTF-8 aby w rtf był on poprawny??
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




http://pl.wikipedia.org/wiki/RTF (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat
RTF posługuje się zestawami znaków ANSI

Kod
{\rtf1\ansi\

Spróbuj przekodować krzaki ze skryptu na CP 1250.

Ten post edytował erix 13.01.2009, 13:23:55
Go to the top of the page
+Quote Post
Czadus
post
Post #5





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

Ostrzeżenie: (0%)
-----


Dodawając do pliku rtf kolejne teksty, konwertowałem je za pomocą iconv na postać windows-1250. Też nie pomogło. Zauważyłem jednak pewną rzecz. Kiedy zapisałem sobie plik w wordpadzie i sprawdziłem kodowanie pliku za pomocą gżegżółki, to nie mógl on podać, jakie jest. Natomiast ten generowany przez mój skrypt, miał kodowanie UTF-8. Może tekst dodaję poprawnie, a końcowy plik przed wysłaniem do przeglądarki należy jeszcze jakoś przekodować??
Go to the top of the page
+Quote Post
pinochet
post
Post #6





Grupa: Zarejestrowani
Postów: 120
Pomógł: 12
Dołączył: 9.10.2008
Skąd: Tricity.Rumia()

Ostrzeżenie: (0%)
-----


A czy jak wpisujesz tekst do pliku plain text jest dobrze?
  1. SET charset=UTF8

Sprawdź też:
Czy w BD są poprawne znaki ...
Czy jest ustawione odpowiednie kodowanie (BD)...
Czy pliki skryptu(php) i plik RTF są w UTF-8
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




PS. A nie lepiej byłoby po prostu wygenerować RTF-a zamiast się z nim tak bawić?

http://www.phpclasses.org/browse/package/1805.html
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 17:10