Právě je 14 srp 2018 20:01

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 13 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: MySQL - Chybné kódování při vkládání nebo výpisu z databáze
PříspěvekNapsal: 03 kvě 2014 06:42 
C4 zákazník

Registrován:
07 srp 2010 06:08
Příspěvky:
6
Dobrý den
Prosím o radu ohledně kódování.
Stránky dělám v utf8. DB i každou tabulku nastavuji na utf8_czech_ci
Uživatel stránek vidí vše správně, pokud data do DB uložím z formuláře ze stránek.
Ovšem v phpMyAdmin češtinu nevidím. Pokud opravím nějaká údaj přímo v phpMyAdmin, tak když ho tam vkládám, češtinu vidím dobře, ale ta se zase špatně zobrazí na webu.

Může na to mít vliv OS na PC? Ale ten by měl být také v utf8.
Děkuji


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MySQL - Chybné kódování při vkládání nebo výpisu z databáze
PříspěvekNapsal: 05 kvě 2014 10:45 
C4 podpora
C4 podpora

Registrován:
30 čer 2009 09:14
Příspěvky:
6723
Dobrý den,

pokud používáte kódování utf8, tak si do Vašeho PHP skriptu přidejte hned za příkaz pro připojení k databázi (např. mysql_connect()) následující řádek:

Kód:
mysql_query("SET NAMES utf8");

Pak by se Vám měla data správně ukládat i vypisovat.

_________________
Radek Plašil
Webhosting C4
https://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MySQL - Chybné kódování při vkládání nebo výpisu z databáze
PříspěvekNapsal: 08 črc 2014 16:11 
C4 zákazník

Registrován:
08 črc 2014 16:00
Příspěvky:
1
S tímto jsem se taky teď setkal. Z formuláře se mi do DB (Mysql) ukládaly místo některých českých znaků (ě, č, ř, ů, ň, ť) jen otazníky. Přičemž ihned po připojení na db byla nastavena znaková sada jak je tady výše popsáno a stejně to dělalo to samé. Pravda webík byl psán v minulosti a určitě by na něm bylo co vylepšit - tedy alespoň užití mysqli místo mysql atd.

Nicméně problém s chybným ukládáním do db jsem vyřešil přidáním SET COLLATION_CONNECTION='utf8_general_ci'; resp. v PHP:
Kód:
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");


Doufám, že to někomu - tedy nejen - při přesunu z jiného hostingu pomůže.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MySQL - Chybné kódování při vkládání nebo výpisu z databáze
PříspěvekNapsal: 14 kvě 2018 13:50 
C4 zákazník

Registrován:
14 kvě 2018 13:40
Příspěvky:
1
Můžete mi napsat, kam se uvedený kód má zapsat, do jakého souboru? Řeším podobný problém.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MySQL - Chybné kódování při vkládání nebo výpisu z databáze
PříspěvekNapsal: 14 kvě 2018 16:17 
C4 podpora
C4 podpora

Registrován:
30 čer 2009 09:14
Příspěvky:
6723
Dobrý den,

kód vložte do souboru, ve kterém máte příkaz pro připojení k databázi. Viz předchozí odpověď:
Radek Plašil píše:
Dobrý den,

pokud používáte kódování utf8, tak si do Vašeho PHP skriptu přidejte hned za příkaz pro připojení k databázi (např. mysql_connect()) následující řádek:

Kód:
mysql_query("SET NAMES utf8");

Pak by se Vám měla data správně ukládat i vypisovat.

_________________
Radek Plašil
Webhosting C4
https://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MySQL - Chybné kódování při vkládání nebo výpisu z databáze
PříspěvekNapsal: 23 kvě 2018 22:26 
C4 zákazník

Registrován:
23 kvě 2018 22:18
Příspěvky:
5
Mám stále problém s importem DB:
MySQL hlásí:
#1273 - Unknown collation: 'utf8mb4_unicode_520_ci'
U zdrojové databáze jsem zvolil Porovnávání: utf8mb4_unicode_ci a cílové taktéž, jelikož cílová db nenabízí stejný znak. sadu utf8mb4_unicode_520_ci.
Verze PHP by měly být nastaveny na obou serverech 5.6. Ve výpise se, ale ukazuje PHP 7.1.17?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MySQL - Chybné kódování při vkládání nebo výpisu z databáze
PříspěvekNapsal: 24 kvě 2018 10:00 
C4 podpora
C4 podpora

Registrován:
30 čer 2009 09:14
Příspěvky:
6723
Dobrý den,

problém je v rozdílných verzích MySQL. Otevřete si Váš sql soubor v nějakém textovém editoru (např. PSPad), najděte v něm a nahraďte všechen výskyt slova:
Kód:
utf8mb4_unicode_520_ci
slovem:
Kód:
utf8mb4_unicode_ci
Pak znovu spustě import do databáze, u které máte nastavené porovnávání utf8mb4_unicode_ci.

Pokud dotaz již nesouvisí s aktuálním tématem, tak pro něj, prosím, příště vytvořte samostatné téma. Chceme mít fórum přehledné i pro ostatní uživatele, kteří hledají řešení stejného problému.

_________________
Radek Plašil
Webhosting C4
https://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MySQL - Chybné kódování při vkládání nebo výpisu z databáze
PříspěvekNapsal: 24 kvě 2018 21:03 
C4 zákazník

Registrován:
23 kvě 2018 22:18
Příspěvky:
5
Tak jsem to provedl dle návodu a místo českých znaků tam jsou pořád otazníčky. Vyzkoušel jsem i změnu na utf8mb4_czech_ci a stejný problém. Není problém ve WP? Nemělo by se nastavení provést tam?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MySQL - Chybné kódování při vkládání nebo výpisu z databáze
PříspěvekNapsal: 25 kvě 2018 10:37 
C4 podpora
C4 podpora

Registrován:
30 čer 2009 09:14
Příspěvky:
6723
Dobrý den,

a pokud sql soubor otevřete v textovém editoru, tak české znaky vidíte v pořádku? Jak se Vám znaky zobrazují v databázi po importu? Pokud používáte pro export databáze např. aplikaci phpMyAdmin, tak novější verze umožňuje při změně porovnávání (záložka Úpravy > volba Porovnávání) také změnit i porovnávání všech tabulek a sloupců. Takže pokud byste změnil porovnávání na utf8mb4_unicode_ci ještě před exportem, tak pak už nemusíte výstupní soubor dále upravovat.

Zkratkou WP myslíte aplikaci WordPress?

_________________
Radek Plašil
Webhosting C4
https://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: MySQL - Chybné kódování při vkládání nebo výpisu z databáze
PříspěvekNapsal: 26 kvě 2018 23:56 
C4 zákazník

Registrován:
23 kvě 2018 22:18
Příspěvky:
5
Před exportem a před importem jsem nastavil kódování na utf8_unicode_ci. Také všechny db tabulky ho mají. V PSPadu se zobrazuje čeština správně, taktéž po importu do db v PHPMyadmin. Přidal jsem do souboru header ve WP (Wordpress): <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />, protože původně tam bylo: <meta charset="<?php bloginfo( 'charset' ); ?>">. Nevím kam zapsat SQL příkaz: mysql_query("SET NAMES 'utf8'"); ?


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 13 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
Návody pro C4

© 2009-2018 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz