jak přesně funguje String::fixEncoding?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- ic
- Člen | 430
Potřeboval bych převést řetězec z kódování windows-1250 do utf-8, doufal jsem že mi s tím pomůže String::fixEncoding ale výsledek je dost rozpačitý. Prostě vyhodí všechny znaky s diakritikou, takhle jsem si tu opravu teda nepředstavoval. Nebo takhle to má fungovat? Není problém s tím že v2 už je jen utf-8 ?
- Blizzy
- Člen | 149
Ve zdrojáku je:
return @iconv('UTF-16', $encoding . '//IGNORE', iconv($encoding, 'UTF-16//IGNORE', $s)); // intentionally @
Pokud jako $encoding
parametr zadáš CP-1250
,
tak:
- převede řetězec z 1250 do Unicode
- převede výsledek z Unicode zpět do 1250 (s tím, že znaky, které nejsou v 1250 budou ignorovány)
Celkový výsledek je teda vyházení znaků, které nejsou v 1250, sám si nejsem jistý, kde takovou funkci použít.
Editoval Blizzy (2. 10. 2010 15:08)