[MySql][PHP] Obcina polskie znaki

0

Mam bazę na UTF8 stronę piszę w ISO i jak wrzucam coś do bazy co zawiera jakiś polski znak to jest to obcinane, np. Wiesław, a w bazie jest Wies.

Czy ktoś wie o co chodzi?

0

E... A jakaś wskazówka po co wrzucać do bazy tekst w innym kodowaniu, niż jest baza? Jak są jakieś dzikie znaczki, to nikt nie przewidzi, jak to się zachowa. Możesz albo zmienić kodowanie (lepiej tego co wrzucasz, bo UTF to w dzisiejszych czasach standard), albo wrzucić to w postaci binarnej do bazy (base64).

P.S. Tak, wiem, formalnie to ISO jest w Polsce standardem, ale QWERTZ też... Właśnie tutaj styka się rzeczywistość z teorią.

0

Wiem, że to najlepsze rozwiąznie, ale przygotowuje system i nie wiem na jakiej platformie będzie on działać. A zdecydowałem się na ISO, bo jednak starsze przeglądarki mają problem z UTF'em.
Czy w taim razie można to jakoś obejść?

// po edycji
No i najdziwniejsze jest to, że nie ma krzaków, tylko ucina. To jest problem!

0

Obejściem jest wrzucanie w BASE64. A ucina, bo mogą być znaki spoza zakresu, albo oznaczające coś konkretnego (UTF-8 nie jest takim prostym kodowaniem, gdzie jeden bajt to jeden znaczek), więc się dzikie rzeczy dzieją. Krzaczki by się nie miały powodu pojawić, dopóki zapisywany tekst jest w tym samym kodowaniu, co strona wyświetlająca.

//Added: Jaka przeglądarka ma problem z UTF? AFAIK nawet Links sobie z tym radzi.

0

zaraz po połączeniu się z bazą:

mysql_query("SET CHARACTER SET 'latin2'");

i problem z głowy ...
to mówi mysqlowi że wszystkie dane będziesz mu wysyłać w ISO-8859-2 i w takim kodowaniu danych też żądasz ...

0

Właśnie o to mi chodziło, wielkie dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1