![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Witam.
Obecnie w pracy siedzę od jakiegoś już czasu i kombinuję jak w locie konwertować przesyłane mi między skryptem a bazą dane. Problem niby z działu Przedszkole (temat kodowania jest nawet przyklejony). Problem polega na jednym szczególe. A wiadomo, że diabeł tkwi w nich. Mianowicie przyszło mi przerobić szablon strony i zrobiłem to dla uniwersalności kodując całość w UTF-8 (takie wewnętrzne kodowanie plików, jak i odpowiednie oznaczenie w meta). Gdyby baza była również w utf-8 to problemu nie ma, ale niestety tak nie jest. Ktoś podczas zakładania pomieszał w konfigu i mam taki Sajgon: Baza: utf-8, System porównywania: latin1_swedish_ci Tabele wewnątrz z charsetem: latin1 No to kombinowałem i najbliższy prawidłowego wyświetlania jest układ: mysql_query("SET NAMES utf8"); mysql_query("SET CHARACTER SET utf8"); oraz latin1 mysql_query("SET collation_connection = latin1_swedish_ci"); Tyle że wyrzuca on teksty z kodowaniem wyglądającym jak ASCII: Ksi??ki i filmy o tematyce sportowej - instrukta?owe, dokumentalne No to postanowiłem dodatkowo użyć iconv. Tyle że to także nie daje rezultatów.
Próbowałem ustawiać różne kombinacje. Poprzez konkretne ISO, nazwy latin1, latin2. W końcu nawet zacząłem ustawiać także wartości poprzez zdefiniowane doń funkcje: Też bez rezultatu. Wciąż brak polskich odpowiedników. Jest mi to niestety potrzebne, bo w przygotowaniu stoją kolejne 2 bazy, a tam jest już nawet nie Sajgon, ale Wojna światowa, bo różne tabele w tej samej bazie mają różne collations. Co jeszcze dziwniejsze. Gdy nie zrobię zmian nigdzie przy połączeniu z baza i nie zastosuję iconv (czyli strona w utf-8 pobiera dane tak jak są w bazie i po prostu je wyświetla nie operując na nich), to poprzez zmianę kodowania w przeglądarce z rozpoznanego utf-8 na iso-8859-2 to co pobrałem z bazy zostaje przekodowane na prawidłowe polskie znaki, ale reszta strony napisana w utf-8 oczywiście sypie krzakami. W ten sposób zgłupiałem bo nie mogę w końcu określić czy baza ma utf-8, ASCII, iso-8859-1 czy może iso-8859-2 ![]() Dla mnie logicznym jest, że w takim wypadku powinienem użyć iconv, ale pytanie w takim wypadku powstaje: "Jakich kodowań jako parametry użyć?. Wyjściowy na bank utf-8. Kombinacje jakich użyłem dają: ISO-8859-2 -> utf-8: standardowe pytajniki w rombach; ISO-8859-1 -> utf-8: standardowe pytajniki w rombach; ascii -> utf-8: standardowe pytajniki w rombach; Kto widzi jakieś inne kombinacje dla rozwiązania tego problemu niech da znać ![]() Ten post edytował thek 7.09.2009, 15:26:33 -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Wiesz, niedawno miałem problem z kodowaniem, admin wkońcu po 20 latach zaktualizował serwer php 5 i mysql 5, a tabele miałem w swedish_ci a kodowanie ustawione na utf, jak nie chcesz się za przeproszeniem piep... pozmieniaj kodowanie w tabelach przy pomocy Mysql Gui Tools
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 21:33 |