Portál AbcLinuxu, 10. května 2025 05:30
ako je to možné?txt.txt je v cp1250 a môj php skript v utf8. keď ale encodujem txt.txt ako utf, tak to pekne vráti hodnotu UTF-8. čo robím zle? skrátka potrebujem zistiť, ako je enkódovaná hodnota v stringu z načítaných súborov (P.S. nechcem zisťovať priamo kodovanie súboru, musím vždy to zistiť z načítaného obsahu).
$myFile = $up . "files/txt.txt";
$fh = fopen($myFile, 'r');
$nacitane = fread($fh, filesize($myFile));
fclose($fh);
$cur_encoding=mb_detect_encoding($nacitane, "auto");
echo $cur_encoding ."
";
Řešení dotazu:
mb_detect_encoding
se pokouší kódovou stránku odhadnout podle používaných bajtů, ale cp1250 a třeba ISO 8859-2 jsou velmi podobné, tak je často velmi obtížné je rozlišit.
mb_detect_encoding()
defaultně detekuje pouze ASCII a UTF-8. Pokud potřebuješ detekovat i další znakové sady, musíš si je přidat. Viz php.cz.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.