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?
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?
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ą.
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!
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.
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 ...
Właśnie o to mi chodziło, wielkie dzięki!