Autor | Zpráva | ||
---|---|---|---|
sloncz Profil |
#1 · Zasláno: 14. 3. 2015, 19:47:13
Hezký večer, narazil jsem na chybu, že mi mysql při výpisu dat vypisuje místo normální znaků, znaky �.
mysql databázi mám nastavenou na porovnávání utf8_czech_ci, stránku mám taktéž nastavenou jak v pspadu tak v html na urf kodování a ve scriptu mám mysql_connect($server, $dbuser, $dbpass); mysql_select_db($dbname); mysql_query("SET NAMES 'utf-8'"); ale i tak, bez úspěchu. Byl by někdo tak moc ochotný a poradi mi? Předem děkuji. |
||
juriad Profil |
Bez té pomlčky; viz:
mysql_query("SET NAMES 'utf8'"); Také zvaž, zda neopustit mysql_* rozhraní, které bude v budoucnu odstraněno. |
||
lionel messi Profil |
sloncz:
Na 3. riadku je chyba, správne: mysql_query("SET NAMES utf8"); //bez pomlčky Netušíme, akú verziu MySQL používaš, ale ak nebude fungovať zmienený kód vyššie, mohlo by ti pomôcť nahradiť ho za: mysql_set_charset("utf8"); |
||
Monkeys Profil * |
#4 · Zasláno: 14. 3. 2015, 19:52:15
sloncz:
hmm dal by som to bez tych apostrofov skus M. |
||
sloncz Profil |
#5 · Zasláno: 14. 3. 2015, 19:56:04
Děkuji za rady, vyzkoušel jsem jak
mysql_query("SET NAMES 'utf8'"); tak i mysql_set_charset("utf8"); ale bez úspěchu, stále mi to ukazuje jen otazníky. Přitom v databázi jsou ty znaky v pořádku. |
||
Monkeys Profil * |
#6 · Zasláno: 14. 3. 2015, 19:58:27
sloncz:
mysql_query("SET NAMES UTF8"); to musi fungovat |
||
Keeehi Profil |
#7 · Zasláno: 14. 3. 2015, 20:04:47
A kódování stránky?
<meta ...
|
||
sloncz Profil |
#8 · Zasláno: 14. 3. 2015, 20:53:37
ano, meta tag s utf9 mám nastaven a soubor je taktéž v utf8 kodovani a ne, ani mysql_query("SET NAMES UTF8"); nefunguje
|
||
Fisir Profil |
#9 · Zasláno: 14. 3. 2015, 21:52:47
Reaguji na sloncza:
A v Admineru/PHPMyAdminu vidíš ta data správně (tj. bez otazníků)? |
||
sloncz Profil |
#10 · Zasláno: 14. 3. 2015, 21:55:20
Ano, v phpmyadmin jsou ty data v pořádku, písmena +ěščřžýáíé tam jsou vidět bez problému.
|
||
rafej Profil |
#11 · Zasláno: 15. 3. 2015, 16:47:02
Zkus tohle:
mysql_query("SET NAMES utf8 COLLATE utf8_czech_ci;"); |
||
Kubo2 Profil |
#12 · Zasláno: 15. 3. 2015, 18:59:06
rafej:
COLLATE s tým nemá nič, slúži ako nastavenie kódovania pri porovnávaní reťazcových dát.
|
||
bestik_63 Profil |
#13 · Zasláno: 15. 3. 2015, 19:06:22
máš v html nastaveno :
<meta charset="UTF-8"> ?
|
||
sloncz Profil |
#14 · Zasláno: 15. 3. 2015, 21:32:55
[#13] bestik_63 ano, už jsem to psal o pár zpráv výše.
Děkuji všem za rady, vyřešeno. Zjistil jsem, že nově přidané záznamy se už vypisují v pořádku, jen ty staré ne. |
||
rafej Profil |
#15 · Zasláno: 16. 3. 2015, 13:05:21
Kubo2:
Já už zažila, že to roli hrálo. Souviselo to s vnitřní výchozí konfigurací na Windows, kdy použití pouze samotného SET NAMES nepřepsalo výchozí nastavení a dělalo při komunikaci chyby. sloncz: Můžeš mít starý obsah v jiném kódování, než je v tabulce zapsáno. Nebo to může být nekompatibilita při změně verze mysql. Tuším, že jsem něco podobného zažila při přechodu z verze 5.0 na 5.1. Udělej si zálohu DB do souboru nebo jiné DB. A vyzkoušej tohle: - pro celou tabulku ALTER TABLE t1 CONVERT TO CHARACTER SET utf8 COLLATE utf8_czech_ci; - pro sloupec c1 ALTER TABLE t1 MODIFY c1 CHAR(N) CHARACTER SET utf8 COLLATE utf8_czech_ci; |
||
Časová prodleva: 9 let
|
0