čžš v bazi MySql (phpmyadmin)

Zdravo,

verjamem da so bile te teme že odprte in je bilo veliko debate o tem ampak jaz še vedno ne najdem rešitve. Poskusiv sem vse živo ...

Imam spletni obrazec, ki beleži prijavnice in jih shranjuje v bazo.
Celoten page ima charset="utf-8".
V bazi MySql imam collation na "utf8slovenianci" sem imel tudi na "utf8generalci" isto ...

Nimam veliko izkušen z bazami in bi bil zelo vesel za kakršno koli pomoč.

4 odgovori

Si nastavil charset tudi za connection? Verjetno je default nekaj drugega.

1

Razumevanje encodinga na relaciji php-browser in php-mysql zna biti kar komplicirana zadeva.

Pri veliki večini je problem v php-mysql povezavi. Po defaultu je namreč mysql strežnik nastavljen na latin1, tako da je treba po vzpostavitvi povezave dodati še SET NAMES utf8. Treba je poskrbeti, da je celotna veriga na utf8: browser - php - mysql.

Toplo priporočam, da si v celoti prebereš sledeča članka na to temo, ki ti bosta razkrila ozadnje teh problemov:

What every programmer absolutely, positively needs to know about encodings and character sets to work with text

Handling Unicode Front to Back in a Web App

V drugem članku je podana in razložena rešitev tvojih težav.

2

Kot je omenil Melkiadus "SET NAMES utf8" dela, preverjeno
Še ena malenkost, ki jo velja preveriti je tudi to, da sam php file shranjen v UTF8 (no BOM)

Sem rešil problem.

$conn = new mysqli($servername, $username, $password, $dbname);
mysqlisetcharset($conn,"utf8");

Hvala za pomoč.