Autor | Zpráva | ||
---|---|---|---|
luma64 Profil |
Pozdravujem ! Ako sa má pls správne nastaviť pre korektné zobrazenie diakritika pri nasledovnom mojom probléme:
stĺpec v tabuľke: dodavmeno` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_slovak_ci DEFAULT NULL pri zobrazení stĺpca v phpMyAdmin: Zásobovanie a.s. zobrazenie na stránke: Z�sobovanie a.s. Na stránke, kde s týmto zobrazením pracujem je nastavenie: $pdo->exec("SET CHARACTER SET utf8"); $pdo->exec("set names 'cp1250'"); <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> Php stránka je kódovaná UTF-8 BOM. Ďakujem ! Ešte pre doplnenie; kódovanie "set names 'cp1250'" pouzivam kvôli tomu, že do danenj tabuľky importujem data z xls tabuľky
|
||
Kajman Profil |
#2 · Zasláno: 30. 8. 2022, 12:39:12
Pro výpis dat použijte set names utf8, jen při insertu dat z xls do db, použijte cp1250.
|
||
luma64 Profil |
#3 · Zasláno: 30. 8. 2022, 13:21:33
Prepačte , ale aký je rozdiel medzi Vašim a mojim zápisom ?
|
||
anonym_ Profil * |
#4 · Zasláno: 30. 8. 2022, 13:28:37
luma64:
Zkus si přečíst to, co psal Kajman, ještě jednou a pomaleji. |
||
Firibix Profil |
#5 · Zasláno: 30. 8. 2022, 14:36:11
Reakce na lumu64:
Definice sloupce v tabulce ( `dodavmeno` varchar(100) CHARACTER SET utf8mb4 ) udává, že data v něm uložená jsou v kódování UTF-8. Příkaz SET NAMES cp1250 specifikuje, že databáze má při komunikaci s PHP převést data do kódování Windows 1250. Protože webová stránka je podle <meta> tagu kódována v UTF-8, diakritika se rozbije. Správně bys při výpisu dat do stránky měl použít SET NAMES utf8mb4 (a SET CHARACTER SET smazat), jelikož kódování stránky a datové komunikace se musí shodovat. *
Naopak při importu dat kódovaných ve Windows 1250 musíš použít SET NAMES cp1250 , aby databáze věděla, že s ní v tomto kódování komunikuješ, a při ukládání do UTF-8 sloupce data do UTF-8 kódování převedla.
* Kódování uft8mb4 odpovídá skutečnému UTF-8, samotné utf8 v MySQL znamená osekané UTF-8.
|
||
luma64 Profil |
#6 · Zasláno: 30. 8. 2022, 14:47:48
Ked som upravil php kód ako mi doporučil Kajman a navyše ešte doplnil riadok, ktorým som upravil vkladanô hodnotu , zápis do tabulky aj výpis na obrazovku je správny
$dodavmeno = iconv('windows-1250', 'UTF-8' , $dodavmeno); |
||
Časová prodleva: 2 roky
|
0