Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> RTF - kodowanie
wucxxl
post 6.02.2008, 10:47:24
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 6.02.2008, 22:32:35
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.


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Czadus
post 12.01.2009, 20:03:34
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 13.01.2009, 13:23:05
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 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


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Czadus
post 13.01.2009, 21:12:22
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 13.01.2009, 21:21:14
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 13.01.2009, 21:39:42
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


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.04.2025 - 11:24