Neustálé problémy s diakritikou. – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Neustálé problémy s diakritikou. – MySQL – Fórum – Programujte.comNeustálé problémy s diakritikou. – MySQL – Fórum – Programujte.com

 

fix0
Stálý člen
15. 1. 2020   #1
-
0
-

Ahoj všem, našla by se tu prosím hodná duše, která by mi polopaticky v bodech vysvětlila co všechno obnáší to, aby mi fungoval web na databázi se správnou diakritikou, řazením českých znaků.

  • Databáze má porovnání utf8_czech_ci.
  • Tabulky mají porovnání utf8_czech_ci.
  • Sloupečky mají porovnání utf8_czech_ci.
  • <meta charset="utf-8" />
  • A před insertem volám ještě: $conn->query("SET NAMES utf8;"); což mi zajišťuje, že se to do té databáze napíše správně s háčkama a čárkama, ne s hieroglyfy.

Zapomněl jsem ještě na něco? Nemám používat třeba utf8mb4 nebo tak něco mám pocit, že to můj hosting upřednostňuje. Jakým dotazem mohu ověřit, kde je chyba a proč mi to takto zlobí?

Pokud v databázi mám:

a) školení - toto slovo se na webu nezobrazuje nic

b) skoleni - na webu se zobrazuje "skoleni"

c) Å¡kolení - na webu se zobrazuje správně "školení", nynější stav před tím než jsem přidal řádek $conn->query("SET NAMES utf8;");, ale nevyhovuje mi, že v databázi je to takhle rozbité.

Děkuji moc za rady a tipy.

Při nastavování collation jsem nastavil takhle jak manuálním nastavením, tak i příkazem pomocí ALTER:

https://mediatemple.net/community/products/dv/204403914/default-mysql-character-set-and-collation

Edit: Nový poznatek, když před SELECT předstrčím zmíněné "$conn->query("SET NAMES utf8;"); ", tak se na webu začne zobrazovat stejný nesmysly, tak jak jsou v databázi např.: "Jiří "

Nahlásit jako SPAM
IP: 92.240.177.–
gna
~ Anonymní uživatel
1853 příspěvků
15. 1. 2020   #2
-
+1
-
Zajímavé
fix +

To není rozbité, takhle se prostě utf8 kóduje. utf8mb4 umožňuje uložit víc znaků (oproti mb3), ale na principu to nic nezmění. Prostě text je v nějakém kódování (případně znakové sadě), které při přenosu/konverzi musíš znát/uvést, ale jinak je ti celkem ukradené. Prostě to musíš správně sypat do/z SQL a do/z HTML a není co řešit.

Akorát bych místo query set names použil set_charset. A ne jen před insertem, ale vždycky a hned po připojení.

Nahlásit jako SPAM
IP: 213.211.51.–
fix0
Stálý člen
15. 1. 2020   #3
-
0
-

Pokud set_names dám:

Nikam: V databázi hieroglyfy a na webu v pořádku (nynější stav)

Jen před INSERT: Do databáze se přidají ve správném tvaru, ale na webu se data přestanou zobrazovat.

Je před SELECTEM: Do databáze se nadále přidávají hieroglify, které se 1:1 zobrazují i na webu.

Před INSERTEM i SELECTEM: To funguje skvěle s velkým háčkem. A to tak, že se správně zobrazují jen ty data, které jsou správně i v databázi. Tedy všecny data doposud nasbírané je potřeba z hieroglyfů převést do správné podoby.

Existuje na to nějaký převaděč? Ideálně už přímo v databázi.

Nahlásit jako SPAM
IP: 92.240.177.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý