Autor | Zpráva | ||
---|---|---|---|
Roman23 Profil * |
#1 · Zasláno: 13. 8. 2008, 15:44:21
Zdravím všechny
při testování své webové prezentace jsem narazil na malý problém. Používám kódování utf8 a při výpisu vše funguje. Stránky se zobrazují správně i s českým kódováním. UTF8 mám nastaveno u tabulek, porovnání, výpisu i v hlavičce webu. Pokud chci však data přes svůj formulář zpětně uložit do MySQL DB, některé české znaky (ě,č,ř...) se nahradí otazníky. Zkoušel jsem už asi 10 způsobů jak to ošetřit, ale marně. Moc by mi pomohla dobrá rada. Děkuji |
||
Joker Profil |
#2 · Zasláno: 13. 8. 2008, 15:46:58
Roman23
Máte správně nastavené kódování přímo v databázi? Máte správně nastavené kódování pro přenos dat (SET NAMES)? Používáte všude stejné kódování (v databázi, co o sobě říká stránka, v čem jsou uložené soubory se stránkou, PHP skripty)? |
||
Roman23 Profil * |
#3 · Zasláno: 13. 8. 2008, 17:13:52
Joker
Stránky jsou uloženy v utf8, výchozí nastavení db je utf8, nastavení tabulek je defaultně utf8 a porovnání jednotlivých sloupců je také utf8. Ihned po připojení k db je vložen dotaz 'SET NAMES utf8'. Vše se na stránce zobrazí OK, jenom při odeslání formuláře a následném zápisu jsou některé znaky nahrazeny otazníkem. |
||
japlavaren Profil |
#4 · Zasláno: 13. 8. 2008, 19:45:12
neviem, ci ti to pomoze ale ja pouzivam
SET CHARACTER SET utf8, NAMES utf8; ta snad.. |
||
Roman23 Profil * |
#5 · Zasláno: 13. 8. 2008, 19:50:12
japlavaren
A jak máš řešené odesílání dat pomocí formuláře a následmý zápis? Před INSERTEM dáváš ten dotaz 'SET CHARACTER SET utf8, NAMES utf8' ?? Nebo ho používáš vždy a před každým dotazem?? |
||
japlavaren Profil |
#6 · Zasláno: 13. 8. 2008, 19:59:38
si sa zblaznil pred kazdym dotazom?
malo by to platit kym neukoncis spojenie s db (to je zvycajne konec scriptu) pouzivam to takto: mysql_connect(); mysql_select_db(); mysql_query("SET CHARACTER SET utf8, NAMES utf8"); daj to do suboru kde sa pripajas do db alebo si to pripis do funkcie |
||
Roman23 Profil * |
#7 · Zasláno: 13. 8. 2008, 20:04:10
japlavaren
Přesně takto to mam. Mam to v konstruktoru třídy, kterou používám pro práci s databází, ale při INSERTU se mi ty znaky stejně nahradí otazníkem :(( |
||
nightfish Profil |
#8 · Zasláno: 13. 8. 2008, 20:14:36
„ale při INSERTU se mi ty znaky stejně nahradí otazníkem :((“
zřejmě vstup není v utf-8 a nebo není správně nastavené kódování v tabulce... ty otazníky vidíš kde? v phpMyAdminovi? |
||
Roman23 Profil * |
#9 · Zasláno: 13. 8. 2008, 20:19:55
Tak už to běží. Chyba byla v tom že jsem ty dotazy "SET CHARACTER SET utf8, NAMES utf8", jsem měl rozděleny. Když se napíšou tímto způsobem do jednoho tak to krásně vše funguje. Moc díky japlavaren, nenapadlo by mě to napsat takto.
|
||
japlavaren Profil |
#10 · Zasláno: 14. 8. 2008, 13:49:39
problem bol v tom, ze ked das
mysql_query("dotaz1; dotaz2") tak z bezpecnostnych dovodov sa vykona len jeden takze to mozes spravit takto: mysql_query("SET CHARACTER SET utf8"); mysql_query("SET NAMES utf8"); ale naco posielat 2 dotazy ked sa to da do jedneho mysql_query("SET CHARACTER SET utf8, NAMES utf8"); |
||
Časová prodleva: 3 měsíce
|
|||
marwik Profil * |
#11 · Zasláno: 28. 10. 2008, 14:58:34
Díky mnohokrát, řešil jsem stejný problém půlku dopoledne!
|
||
Časová prodleva: 10 měsíců
|
|||
Anonymní Profil * |
#12 · Zasláno: 2. 9. 2009, 15:01:48
neřešil jste někdo zpětný proces narovnání dat v MySQL poté, co chvíli nebylo zapnuté set names utf8? Z php stránek v utf8 se to do MySQL navkládá de facto znovu enkodované do utf8.
|
||
tiso Profil |
#13 · Zasláno: 2. 9. 2009, 15:04:12
Anonymní: pokiaľ tých pokazených dát nie je veľa tak by si to mohol opraviť ručne.
|
||
Kajman_ Profil * |
#14 · Zasláno: 2. 9. 2009, 15:04:37
|
||
Anonymní Profil * |
#15 · Zasláno: 2. 9. 2009, 16:32:23
2tiso: díky, ale těch záznamů je několik set (necelých 800), samozřejmě by to šlo ručně, ale myslím, že si těch pár "příjemně" prožitých hodin mohu odpustit
2Kajman_: super! to vypadá schůdně |
||
Anonymní Profil * |
#16 · Zasláno: 2. 9. 2009, 16:45:46
2Kajman_: tak bohužel, z utf8^2 to odutf8kovat na jednoduché utf8 nezabírá...
|
||
Anonymní Profil * |
#17 · Zasláno: 4. 9. 2009, 01:35:53
nakonec jsem rezignoval a napsal si na to skript s polem zaměňovaných znaků:-(
|
||
Časová prodleva: 15 let
|
0