Autor Zpráva
Jakub2222
Profil *
Dobrý den, potřeboval bych poradit s něčím, co mi nejde do hlavy.
Mám db, které má encoding utf8 a jsou v ní ,,poškozená data" (Rohlék místo Rohlík).

Pomocí iconv( "Windows-1250", "UTF-8", ($str)); se na výstupu správně zobrazí Rohlík

Takže jsem vytvořil novou DB s encodingem cp1250 a výsledek ukládám do db. Jenže v databázi je zpět Rohlék či dokonce i lepší hatmatilka.

Pro jistotu jsem nastavit i encoding spojení k db na cp1250.

Napadá někoho, kde může být zakopaný pes? Do db opravdu tlačím správný text co jsem dostal z iconv.

Děkuji
juriad
Profil
Jakub2222:
Jdi na to opačně. Je rok 2022 a nemá smysl používat jiné kódování než UTF-8 (v databázi, na webu, kdekoli jinde).

www.w3.org/International/questions/qa-choosing-encodings#nutshell
Kajman
Profil
Jakub2222:
Do db opravdu tlačím správný text co jsem dostal z iconv.

Když se podíváte na data adminerem nebo pma, tak je diakritika v databázi v pořádku?
Jakub2222
Profil *
juriad:
No utf8 jsem používám často a bez problému. Teď jak jsem hledal infomace, našel jsem na stackoverflow, že pro středoevropské země je lepší údajně cp1250... Každopádně utf8 mám rád...
mb_detect_encoding() vyhodí, že string má kódování UTF-8. Jenže bez převodu na cp1250 nejdou data správně vypsat ani na výstup.

Kajman:
Ani přes pma není v pořádku. Když výstup z iconv vložím ručně (ctrl+c ctrl+v), je vše v pořádku.



Ještě tedy vyzkouším prasečinku převodu na cp1250 a pak utf-8, ale rád bych se takovýmhle věcem vyhnul...
Kajman
Profil
A teprve to tvoříte a můžete dát do db znovu a správně, nebo je potřeba data zachovat a opravit?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0