konto usunięte

Temat: Parsowanie xmla, problemy z kodowaniem.

Witam, mam pewien problem.
Mam plik xml dostarczony w kodowaniu Windows-1250. Chce wrzucic z niego dane do bazy jako utf-8 (w bazie ustawienia wszedzie sa na utf-8). Zmieniam kodowanie pliku w konsoli iconvem:

iconv -f cp1250 -t utf8 moj_plik.xml > target.xml

Sprawdzam w konsoli (kodowanie konsoli utf8) - no i pieknie, nie mam juz zadnych krzakow, sa ladne ogonki.

W aplikacji, zasysam xmla poprzez simplexml_load_file. Zmienialem kodowanie wczesniej bo ta funkcja z tego co wiem od razu zamienia na utf8, a kodowania cp1250 w ogole nie obsluguje. Nastepnie daje print_r dla wyniku i coz, widze krzaki :/. Jak odpowiednie nod'y wrzucilem do bazy to tez ciagle krzaki.

Moze ktos ma jakies doswiadczenie w manipulowaniem kodowaniem znakow i dalby tu jakas rade?

Pozdrawiam.Marcin Olichwirowicz edytował(a) ten post dnia 20.08.08 o godzinie 14:11
Piotr L.

Piotr L. Administrator,
programista, student
Politechniki
Warszaws...

Temat: Parsowanie xmla, problemy z kodowaniem.

Czy przy połączeniu z bazą było używane UTF-8? (USE NAMES UTF-8)

Czy plik wysłał nagłówek do przeglądarki z odpowiednim kodowaniem? (Content-Type: text/html; charset=UTF-8)
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: Parsowanie xmla, problemy z kodowaniem.

rowniez podejrzewam ze nie bylo USE NAMES....

proponuje jeszcze do bazy sie podlaczyc jakims narzedziem i zobaczyc jak wygladaja wiersze w tabeliMarcin Lulek edytował(a) ten post dnia 20.08.08 o godzinie 14:17

konto usunięte

Temat: Parsowanie xmla, problemy z kodowaniem.

Heh, dzieki za szybka reakcje :)
Calkowicie zapomnialem o tym ze wczesniej potrzebne mi bylo poprzestawianie ustawien na latin1 :)
Tak wiec zmienilem defaultowe kodowanie Apache'a i PHP, no i dumpowanie na xml'a juz dzialalo ladnie bez krzakow ale w bazie ciagle krzaki byly.

Patrze na \status w mysql i od gory do dolu latin1.
Dodalem po polaczeniu:
$conn->exec('SET CHARACTER SET utf8');
$conn->exec('SET NAMES utf8');

I ladnie dodaje i pobiera. Dzieki za podpowiedz. Zamieszczam rozwiazanie z racji jakby ktos mial moze podobny problem.
Dominik Stelmach

Dominik Stelmach Programista
Aplikacji
Internetowych,
Action S.A.

Temat: Parsowanie xmla, problemy z kodowaniem.

Marcin Olichwirowicz:
Patrze na \status w mysql i od gory do dolu latin1.
Dodalem po polaczeniu:
$conn->exec('SET CHARACTER SET utf8');
$conn->exec('SET NAMES utf8');

I ladnie dodaje i pobiera. Dzieki za podpowiedz. Zamieszczam rozwiazanie z racji jakby ktos mial moze podobny problem.

W sumie pewnie wystarczyloby
$conn->exec('SET NAMES utf8');

Pozdrawiam

Temat: Parsowanie xmla, problemy z kodowaniem.

Tak przy okazji,iconv . Można konwertować "w locie" :)

konto usunięte

Temat: Parsowanie xmla, problemy z kodowaniem.

No probowalem tym tez dzialac ;) Cale szczescie ze jak w bazie jest tabela na utf8 i kodowanie bazy przestawione, oraz domyslne kodowania php i apache'a to zarowno printowalo mi elegancko, i do bazy tez prosto zapisywalo w odpowiednim kodowaniu bez potrzeby recznej zmiany kodowania :>

konto usunięte

Temat: Parsowanie xmla, problemy z kodowaniem.

ja tam zawsze uzywam:

SET NAMES utf8 COLLATE utf8_general_ci, bo dla bazy przewaznie generale stosuje

pozdro

Następna dyskusja:

Problem z kodowaniem...




Wyślij zaproszenie do