Webboard

Pełna wersja: Problem z kodowaniem znaków w bazie danych
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
PHP: 5.2.17
SQL: MySQLi 5.0.92
Wersja PHPMyAdmina: 3.4.10.1

Problem dotyczy dokładniej tabel skryptu Collabtive.
Początkowo tabele były kodowane w utf8_swedish_ci, jednak powodowało to pewnego rodzaju błędy z polskimi znakami przy zawijaniu nazw ticketów, dlatego zamieniłem kodowanie tabel i całej bazy na utf8_general_ci i wszystko działało dobrze.
Problem jednak wystąpił po przenosinach na nowy serwer. Po wgraniu kopii zapasowej bazy danych, znaczki się rozsypały, a po próbie ich ręcznego wpisania w bazie danych otrzymuję alert:
Kod:
Warning: #1366 Incorrect string value: '\xC5\x84' for column 'subtitle' at row 1
Zarówno metoda porównywania znaków w bazie jak i kodowanie tabel to utf8_general_ci.
Od samego początku jest taka metoda porównywania znaków na bazie, czy zmieniłeś ją dopiero po zauważeniu problemu?
Zmieniłem ją ręcznie, ale jeszcze przed wgraniem kopii.
No to w zasadzie dziwna sprawa. Sprawdzałeś, czy dorzucenie do skryptu zaraz po połączeniu z bazą SET NAMES UTF-8 coś daje?
Nie, bez zmian.
Żeby nie było, sama strona ma dobre kodowanie, bo polskie znaki z plików językowych wyświetlają się w porządku.


Dobra, znalazłem winowajcę. Mimo, że tabele same w sobie miały kodowanie utf8_general_ci, to po wejściu w strukturę wszystkie wpisy miały ustawione latin_swedish_ci.