Autor | Zpráva | ||
---|---|---|---|
dtx Profil * |
#1 · Zasláno: 31. 7. 2014, 10:42:21 · Upravil/a: dtx
Ahojte,
exportuju z našeho eshopu objednávky pro jistý systém (v XML). Databáze je v UTF8 Výsledné XML musí být v cp1250 Před zapsáním do XML souboru data konvertuju pomocí iconv( "UTF-8", "CP1250", $out ); Problém nastane ve chvíli, kdy je v databázi nějaká objednávka obsahující znak, který je pro UTF8 validní (např ė, À, ǔ apod.), ale při převedení do cp1250 se z něj stane jakýsi bordel, který celé XML zprzní/znevalidní. Doteď jsem to řešil tak, že jsem dané znaky před iconvem replacoval něčím, co cp1250 nerozhodí (ė > e, À > A apod.). Ale takto budu vždy krok pozadu a budu to asi muset dělat ještě hodně dlouho. Nápad: Mít seznam povolených znaků a před zkonvertování iconvem nahradit ve stringu všechny ostatní (tedy ty, které se nevyskytují v seznamu povolenách) např. otazníkem. Otázka: jak tohoto docílit. Nebo napadá vás někoho lepší/jiné řešení? UPDATE: zatím to vypadá, že přidání //TRANSLIT za názvy znakových sad v iconv dělá přesně to, co potřebuju. iconv( "UTF-8//TRANSLIT", "CP1250//TRANSLIT", $out ); |
||
Jan Tvrdík Profil |
#2 · Zasláno: 31. 7. 2014, 11:23:09
dtx:
Mělo by stačit uvést TRANSLIT jen u druhého parametru, tedy:
iconv("UTF-8", "CP1250//TRANSLIT", $out); |
||
dtx Profil * |
#3 · Zasláno: 31. 7. 2014, 12:24:13
Jan Tvrdík: Je to tak, díky.
|
||
Časová prodleva: 11 let
|
0