[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: MySQL 4.1 + PHP 4.4.0 = brak polskich znaków



On Sun, Nov 06, 2005 at 07:01:48PM +0100, Adam Byrtek wrote:
>On Sun, Nov 06, 2005 at 05:54:32PM +0100, Jacek Politowski wrote:

>> Najprawdopodobniej po wykonanym dziś upgrade PHP4 (z 4.3.10 do 4.4.0)
>> i Apache (1.3.33 do 1.3.34) zniknęły mi polskie znaki w zawartości
>> stron generowanej z bazy (zamiast nich widzę znaki zapytania).

>Czy nie zaktualizowałeś też czasem MySQL z 4.0 na 4.1? Te wersje
>znacznie różnią się obsłudze locale, a migracja nie jest
>,,bezbolesna''.

Aktualizowałem jakiś czas temu, tak jak pisałem jestem na 90%
przekonany, że po zmianie mysqla (18-go października, jak mi wynika z
logu aptitude) nie było problemów z PLiterkami.


> Więcej znajdziesz tutaj:

To też czytałem. Ale najprawdopodobniej jeszcze nie zrozumiałem
dokładnie i nie udało mi się powiązać z obecną sytuacją.

Czytałem także:
http://dev.mysql.com/doc/refman/4.1/en/upgrading-from-4-0.html


>Spróbuj na początku skryptu, z którym są problemy wykonać zapytanie
>,,SET CHARACTER SET latin2'' i napisz, czy pomogło.

Trochę dużo ich.
phpBB, jakieś zabawy znajomych, trochę moich zabaw.

Nie każdy z nich pisany sensownie (czyt. wiele połączeń, w różnych
dziwnych miejscach).

Jak widzę, SET CHARACTER SET ustawia zmienne dla sesji, co
najwyraźniej nie rozwiąże problemu (zawsze gdzieś można coś
przeoczyć).

Na razie problemu szukam po stronie serwera, bo spodziewam się, że
jednak tam on rezyduje i da się przywrócić poprawne funkcjonowanie,
bez modyfikacji skryptów.


>Prześlij też to,
>co zwraca SHOW VARIABLES, a dotyczy zestawu znaków.

mysql> show variables like "%char%";
| Variable_name            | Value
| character_set_client     | latin2
| character_set_connection | latin2
| character_set_database   | latin2
| character_set_results    | latin2
| character_set_server     | latin2
| character_set_system     | utf8
| character_sets_dir       | /usr/share/mysql/charsets/



>> Co ciekawe - phpMyAdmin także nie ma problemu z PLiterkami -- zarówno
>> przy wybraniu dla niego locale UTF8, jak i iso8859-2 (przy logowaniu)
>> -- wyświetla PLiterki poprawnie.

Źle mówię o ustawieniu locale iso -- tego nie da się po prostu zrobić.
Mimo ustawienia iso przed logowaniem, po zalogowaniu jest utf8 (i brak
możliwości wyboru czegokolwiek poza utf8)

To naprowadziło mnie na dalszy trop. phpMyAdmin daje mi takie
wartości:

Zmienna                  Wartość sesji  Wartość globalna 
character set client              utf8            latin2
character set connection          utf8            latin2
character set database          latin2            latin2
character set results             utf8            latin2
character set server            latin2            latin2
character set system              utf8              utf8


>W MySQL 4.1 zestaw znaków (i collation) można ustawiać per baza,
>tabela i kolumna. Sprawdzałeś wszystkie te możliwości?

Bazy zakładane były jeszcze w MySQL 4.0 i nie robiłem z nimi nic przy
upgrade.  Wszystkie bazy, które sprawdziłem twierdzą, że są latin2
(tabele i pola także)


-- 
Jacek Politowski



Reply to: