Autor Zpráva
Igor
Profil
Existuje nějaká funkce na to abych zjistil, zda je string v kódování UTF-8 nebo CP1250?

Používám

if (mb_detect_encoding($str, 'UTF-8') === false) die("Some error...");


Ale projde i řetězec s kódováním CP1250.

Tedy chci zastavit chod aplikace pokud nějaký string není ve správném kódování. V tomto případě mi prochází string který je v cp1250 a mělo by se to zastavit, protože nejde o UTF-8.

Edit:
Špatně jsem hledal, už jsem nalezl: Odkaz
Je tu ale určitá záludnost. Pokud text, např. jméno souboru neobsahuje znak diakritiky, pak to vyhodnotí jako UTF-8
pcmanik
Profil
Igor:
Len ma zaujima, naco to vyuzijes, resp. potrebujes?
Igor
Profil
pcmanik:
Mám soubor, který je v UTF-8. A mám názvy souborů v kódování WINDOWS-1250. Pokud jméno určitého souboru odpovídá WINDOWS-1250, pak provést
$correct_result = array_search(
iconv("WINDOWS-1250", "UTF-8", $kategorie),
$volby[0][0]); // hledat v souboru voleb při UTF-8


Dojde k porovnání dvou jinak odlišných dat; zjistí, zda se položka nachází v seznamu; dosadí číslo index, ve kterém byla položka nalezena.

Pokud nejde o Windows-1250 tak se konverze neprovádí. Tak či tak výsledkem je číslo.

Je to děláno na platformu Windows. Teď mě napadá, že kdybych chtěl aby to fungovalo na linuxu (nebo macu), tak nevím jaký linux používá kódování pro názvy souboru.
Rellik
Profil
Kdybys zkoušel hledat tady na fóru, našel bys odkaz na http://latrine.dgx.cz/autoczech-aneb-automaticka-detekce-kodovani

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