problém s diakritikou pri výpise z databáze
V stlpcoch nazov a vlastnosti mam uložené informácie aj so slovenskou diakritikou. Stlpce mam nastavene na tzp varchar (255).
Tabulku som skusal zotriedit cez utf-slovak_ci aj cp1250 aj ine a stale mi po
zavolaní informácií o chemikálii z databáze vypisuje resp. nezobrazuje diakritiku.
V stranke, ktora mi informacie zobrazuje som vzdy zmenil aj meta informaciu v hlavicke
na zodpovedajuci charset typ a nic.
Pre pridávanie komentárov sa musíte prihlásiť.
Ak si napriklad ukladal informacie cez stranku s kodovanim s CP1250 a databaza mala nastavene kodovanie ISO-8859-2, tak to spat nedostanes inak ako pri presne takomto nastaveni.
Skus SQL prikaz "SET CHARACTER SET nieco" a potom rob s databazou. Kodovanie skusaj zmenit pomocou prehliadaca, nie v mete - to kazdy prehliadac neakceptuje a dava prednost kodovaniu v hlavicke. Vo Firefoxe to spravis pomocou View->Character Encoding
takze pri vytvarani tabulky nastav defaultne kodovanie na utf-8 a aj pri kazdom textovom (varchar, text,..) stlpci to tiez explicitne definuj na utf-8
a dalej v zdrojakoch php-ka pouzivam:
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "UTF-8");
iconv_set_encoding("input_encoding", "UTF-8");
setlocale(LC_ALL, "sk_SK.UTF8");
a po vytvoreni spojenia s databazou:
mysql_set_charset("utf8", $db_link);
(PHP 5 >= 5.2.3), inak:
mysql_query("SET CHARACTER SET utf8 ");
(pozn.: mysql ja case-sensitive v pripade kodovania a nezoberie ani s pomlckou "utf-8" a ine varianty)
a taktiez je nevyhnutne do hlavicky stranky zadat kodovanie utf-8..
otazka pre ostatnych... ake dalsie kodovania a ako sa daju nastavovat (php, *sql, apache)? uz dalsie hodiny stravene opravovanim pokazenej diakritiky fakt netuzim zazit.. ;-)
si vyberas na nastavenie tabulky?
utf8_bin alebo utf8_unicode_ci
alebo utf8_slovak_ci?
a po vytvoreni spojenia s databazou,
co znamena db_link v tomto prikaze?
mysql_set_charset("utf8", $db_link);
To je cesta odkial kam?
Este odpoved na prvu otazku:
Ked otvorim localhost/phpmyadmin/ a
nastavim sa na tabulku, kde mam zluceniny,
vidim diakritiku spravne.
Idem testovat co napisal still a potom sa ozvem ako som dopadol.
Zatial dakujem vsetkym, keby mal niekto este nejake riesenie, prosim podelte sa s nim so mnou.
Cize mal som vsetko v databaze nastavene
na utf8_slovak_ci. V stranke som v meta
hlavicke definoval charset=utf-8 no a potom
som po pripojeni k databaze zadal:
mysql_query("SET NAMES 'utf8'");
no a ja som tam mal predtym napisane:
mysql_query("SET NAMES 'utf-8'"); cize cely problem robila ta pomlcka v definicii utf.
Dakujem vsetkym za rady, zelam pekny den.