Autor Zpráva
Artie
Profil *
Ahoj,

jde nějak načíst soubor v libovolném kódování do utf8.
Znám funkci iconv, ale jí se musí zadat původní kódování souboru.
Pak jsem našel druhý parametr funkce file FILE_TEXT, ale ten funguje na novějším PHP než mám na serveru.

děkuju za rady...
AM_
Profil
Ahoj,
obecně je ten problém, že textový soubor nemá nikde uloženo, v jakém se nalézá kódování.
Existují heuristické metody, které dle nalezených znakových kódů v souboru "odhadnou", o jaké kódování se jedná, jsou ale poměrně složité a nikdy nemohou být přesné (např. jak rozhodneš, zda jednobytový soubor se znakem 0xBE je slovenské ľ ve windows-1250, nebo české ž v iso-8859-2?)
Artie
Profil *
Aha, tak to je nepříjemné, jak by se tady situace dala řešit? Nyní se musí zobrazovat data z uploadnutých textových souborů od různých lidí.
Joker
Profil
Artie:
První možnost je vnutit uživatelům nějakou znakovou sadu (prostě se řekne, že soubory se posílají v nějakém kódování a kdo to pošle jinak, bude to mít zobrazené špatně).

Druhá možnost je nechat samotného uživatele určit, v jakém kódování chce soubor odeslat. Nevýhoda je, že uživatel musí být natolik znalý, aby to věděl.

Třetí možnost je definovat nějakou množinu možných znakových sad a z nich potom vybírat analýzou textu, jak píše AM.
Vcelku spolehlivě to funguje v případě, že máte dostatečně dlouhý text, nejlépe když se v něm z dané znakové sady používají jen písmena (ne různé symboly apod.) a víte, v jakém je jazyce.

No a šlo by i kombinovat druhou a třetí možnost, kdy by se soubor automaticky překonvertoval z několika předpokládaných kódování, výsledek by se napsal uživateli a ten by vybral, který výstup je správný.
AM_
Profil
Napadá mne ještě jedna možnost: textové soubory neuploadovat, ale nahrávat je skrz textarea ve webovém formuláři. Vzhledem k tomu, že stránka má definovanou znakovou sadu, prohlížeč ví, jak má text odeslat na server, zároveň přenos znakové sady při copy-paste textu mezi textovým editorem a browserem by měl zajistit OS.
Davex
Profil
Řešení se jmenuje AutoCzech:

1. Vojtěcha Semeckého - ke stažení je ve webovém archivu
2. Davida Grudla
3. Radka Hulána

4. a nebo CharsetDetector Kamila Dudka

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