Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: qaculda 24 Února 2008, 13:14:52

Název: UTF-8 v MySQL a phpMyAdmin [vyřešeno]
Přispěvatel: qaculda 24 Února 2008, 13:14:52
Snažím se všude používat UTF-8, čili databáze jsou v UTF-8, php je v UTF-8, ale přesto, když něco uložím přes rozhraní phpMyAdmin(stránka i rám jsou stále v kódování UTF-8), ve výsledku se pak ukáže něco jiného:
Kód: [Vybrat]
P?�li� �lo?ou?k� k?? �p?l ?�belsk� �dy.Když jsem zkoušel zadávat do MySQL přes terminál nebo php, tak je všechno v pořádku, ale v phpMyAdmin se zobrazuje
Kód: [Vybrat]
PříliÅ¡ žluÅ¥oučký kůň úpÄ›l ďábelské ódy.Tady je pár proměnných, které se toho týkají(položka 'Systémové proměnné MySQL' v phpMyAdmin)
 
Kód: [Vybrat]
character set client  utf8
(Globální hodnota) latin1
character set connection utf8
(Globální hodnota) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Globální hodnota) latin1
character set server latin1
character set system utf8
collation connection utf8_unicode_ci
(Globální hodnota) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
verze php 5.2.3
verze MySQL 5.0.45
verze phpMyAdmin 2.10.3
Kde je zakopaný $this->pes()?
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: Pavel Půlpán 24 Února 2008, 13:17:42
Konzole je v UTF8 a zobrazuje spravně, prohlížeč ne? Jestli to nebude třeba jenom tím prohlížečem.
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: qaculda 24 Února 2008, 13:24:49
konzola zobrazuje správně, prohlížeč(php kód čtoucí z databáze) taky zobrazuje správně, jenom v rozhraní phpMyAdmin je problém
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: Tomáš Jančík 24 Února 2008, 13:52:42
nastaveni phpMyAdminu. tak jsem taky nekde videl nastaveni kodovani...
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: qaculda 24 Února 2008, 14:06:33
v phpMyAdminu je:
Jazyk: Česky - Czech
Porovnávání pro toto připojení utf8_czech_ci,
databáze utf8_czech_ci,
tabulky utf8_czech_ci,
porovnávání v tabulce utf8_czech_ci
Firefox hlásí kódování UTF-8 v celé stránce i v samotném rámu.
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: Bernard Williams 24 Února 2008, 21:33:51
Mají tabulky MySQL opravdu nastavené porovnávání utf8?
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: qaculda 24 Února 2008, 22:07:37
opravdu
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: Pavelp 25 Února 2008, 07:02:58
Takze:
insert into tabulka(jmeno) values('žížala');
zadaný z okna phmyadmina se zobrazi naslednym selectem spatne ?
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: qaculda 25 Února 2008, 19:29:31
v phpMyAdmin se zobrazí tak jak jsem zadal, ale ve stránkách se zobrazuje ��ala a v terminálu ���ala
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: Pavelp 25 Února 2008, 20:52:49
v terminalu spustite v mysql clientu prikaz "set names to utf8" ? Mate OPRAVDU v terminalu znakovou sadu UTF? Jak mate nastavene kodovani v Apachu ? Direktiva default codepage, nebo tak nejak, nezabyvam se tim do hloubky.


Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: qaculda 25 Února 2008, 22:12:52
příkaz 'set names to utf8;' hlásí syntax error  near 'to utf8' at line 1, možná jsem jenom nepochopil, co mám dělat.
V apache jsem tuhle ani podobnou direktivu nenašel(těch konfiguráků je tam asi milion), ale našel jsem adresář /etc/apache2/conf.d, ve kterém je soubor charset.conf:
Kód: [Vybrat]
# Read the documentation before enabling AddDefaultCharset.
# In general, it is only a good idea if you know that all your files
# have this encoding. It will override any encoding given in the files
# in meta http-equiv or xml encoding tags.

#AddDefaultCharset UTF-8
a link na /etc/phpmyadmin/apache.conf
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: Libor Šedivý 25 Února 2008, 23:39:32
Přidám svou trošku do mlýna. Dnes jsem byl postaven před úkol aktualizace webu. Řeklo by se banální záležitost, jenže když skoro každý řádek je jednotlivě uložen v databázi, na kterou musíte přes extrémně pomalý internet (nejpomalejší vytáčené připojení), tak je to horor. No a tam jsem měl ten problém, že phpMyAdmin nedokázal zobrazit správně diakritiku a (jako u ostatních), když jsem napsal třeba ř, na stránce pak byl vidět nesmyslný znak. Problém jsem nakonec vyřešil tak, že jsem to tam psal znaky, které se mi ukázaly v opačném převodu mezi kódováními (snad jsem to napsal dobře) - tudíž třeba ř jsem tam zapsal jako přeškrtnuté ok a pak vše bylo OK. Jenže pokud se jedná o dlouhé texty, tak je toto řešení nesmysl a také bych rád věděl, jak na to. Viděl jsem tam nějaké nastavení kódování, ale při testech na svém localhostu jsem zjistil, že tu diakritiku to na stránkách totálně dokoná, takže nedoporučuji měnit...
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: Pavelp 26 Února 2008, 06:42:59
ten prikaz je presne: set names 'cp1250';
nebo: set names 'utf8';

Apache direktivu nevim, mozna poradi nekdo, kdo se tim zabyva.

To "set names" je zakladni vec, kterou musite udelat.
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: qaculda 26 Února 2008, 07:02:30
Změna nastala :). Teď terminál ukazuje totéž co phpMyAdmin, ale php ukazuje pořád něco jiného. Vybírám podstatné řádky ze zdrojáku:
Kód: [Vybrat]
<?xml version="1.0" encoding="UTF-8"?>
...
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
...
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: Pavelp 26 Února 2008, 17:21:26
Ja na tom nic podstatneho nevidim, jsou to uvozovaci tagy nejakeho xml. O pripojeni k mysql tam neni nic. Tam se to kodovani musi nastavit !

Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: qaculda 27 Února 2008, 13:29:09
Ok, tak jsem jenom myslel, že je to podstatné :)
Jak se tedy nastavuje kódování při připojení k mysql?
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: Bernard Williams 27 Února 2008, 14:07:49
Kód: [Vybrat]
<?php
@mysql_query("SET NAMES CP1250");
?>
Nejlepší je to použít hned po MySQL_Select_db.
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: Pavelp 27 Února 2008, 14:09:01
Handl tam bejt nemusi ?
Název: Re: UTF-8 v MySQL a phpMyAdmin
Přispěvatel: qaculda 27 Února 2008, 15:17:34
Skvělý!!!
Děkuju, všechno konečně funguje v tom kódování v kterým má. Přidávám potlesk.
Název: Re: UTF-8 v MySQL a phpMyAdmin [vyřešeno]
Přispěvatel: mk33 05 Srpna 2008, 09:17:45
Narazil jsem na následující problém. Kódování databáze mám na utf8, ale při prohlížení v konzoli mi to dělá takovouhle neplechu:


mysql> select * from evz_hartink;
+----+------------+-------------+
| id | vyrobce    | model       |
+----+------------+-------------+
|  1 | ?�?�??�?�� | ???�??�??�? |
|  2 | dd         | ????�??     |
+----+------------+-------------+




mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from evz_hartink;
+----+----------------------+------------------------+
| id | vyrobce              | model                  |
+----+----------------------+------------------------+
|  1 | ěščšřčžřýí | řčřščřščřšč |
|  2 | dd                   | čěčěščě         |
+----+----------------------+------------------------+
2 rows in set (0.00 sec)


neví někdo kde může být, že je to takhle rozhozený?