Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kodowanie polskich znaków na szybko
Forum PHP.pl > Forum > PHP
.radex
Mam straszny problem z transportowaniem danych pomiędzy różnymi serwerami (danych z bazy MySQL) przy kodowaniu UTF-8 (z ISO-8859-2 nie ma problemów, jesli sie zmieni kodowanie za pomocą np. programu gżegżółka), więc wpadłem na taki prosty pomysł, aby do bazy wysyłać zakodowane polskie znaki,np:

ą - &$a;
Ź - &$X;

itd.

Czy jest sens takiego kodowania (a przy pokazywaniu odkodowania) - czy jest jakieś rozwiązanie, czy będzie to bardzo spowalniało czy tylko trochę no i jaki jest najszybszy sposób takiego kodowania (tj.coś oprócz str_replace chyba że własny algorytm)
tomeksobczak
a nie lepiej przy eksporcie i imporcie zadbac o kodowanie UTF??
.radex
Używając PMA przy eksporcie nie ma możliwości wybrania kodowania. Natomiast przy imporcie jest, ale sądzę że problem jest na poziomie eksportu (polskie litery w UTF to dwa znaki - pierwszy pozostaje ok, a drugi zamienia się na kratkę (znak poniżej 30 bodajże) lub na znak zapytania)
tomeksobczak
hmmm

nigdy nie miałem takich problemów podczas przenoszenia baz a wszystko robię w UTF-8

sprawdz moze jakie masz "MySQL connection collation:" na stronie glownej pma
cicik
Ja tam zawsze na początku listy zapytań wstawiam polecenie "set names" i wtedy zawsze jest dobrze.
.radex
@tomeksobczak - System porównań dla połączenia MySQL: utf8_unicode_ci

Tutaj coś zmieniać przy eksporcie?

@cicik - jeśli dobrze rozumiem o co Ci chodzi to sie nie da, bo jak powiedziałem - znaki się psują już po eksporcie.

EDIT:

Coś zmieniłem i teraz po eksporcie znaki się nie psują, ale co z tego skoro po załadowaniu na inny serw się psują :/

EDIT:

Jednak się psują, z tym że nie zamieniają się na kratki, a na jakieś inne znaki...
tomeksobczak
ja uzywam utf8_general_ci

raz musialem uzyc utf8_bin przy przeniesieniu na inna architekture (x86 -> SPARC)
.radex
nie działa :/
SzamanGN
Po wpisie:
mysql_connect($serwerMySQL,$uzytkownikMySQL,$hasloMySQL);

dodaj:

mysql_query('set CHARset latin2');

powinno rozwiązać problemy.
.radex
to nic nie da. Koduje dobrze, ale ten gów****y SQL jest strasznie upierdliwy jeśli chodzi o kodowanie :/
matix
iconv()
.radex
czy proponujesz przed eksportem zamienić wszytko w bazie na inne kodowanie, a po imporcie znów zmienić? Dobry pomysł, z tym że mam dwa pytania:
1. Skąd mam wiedzieć, czy z innymi kodowaniami nie będzie się działo to samo?
2. Jak wyciągnąć wszystkie teksty z bazy?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.