Autor Zpráva
Darker
Profil
České znaky výstupu funkce se mi zobrazují nesprávně, a to i s funkcí autoUTF. Co to může být za kódování?
Mike8748
Profil
Darker:
záleží na operačním systému serveru a jeho nastavení
Darker
Profil
Mike8748:
záleží na operačním systému serveru a jeho nastavení
A to zjistím jak?
Majkl578
Profil
php_uname/PHP_OS
Darker
Profil
Majkl578:
Windows NT [Jméno počítače] 6.1 build 7601 (Windows 7 Home Premium Edition Service Pack 1) i586/WINNT

To je mi k ničemu. Mezitím jsem to zkoumal a udělal takovýhle skript:
header("Content-Type: text/plain; charset=\"utf8\"");
$string = shell_exec("ipconfig");
$blocksize = 40;
foreach(mb_list_encodings () as $encoding) {
  echo str_repeat("_",$blocksize-floor(strlen($encoding)/2)).$encoding.str_repeat("_",$blocksize-ceil(strlen($encoding)/2)).PHP_EOL;
  $s = mb_convert_encoding($string, "UTF-8", $encoding);
  echo $s;
  echo PHP_EOL;
}
Projel jsem výsledky všech pokusů o konverzi ale ani v jednom případě to nebylo dobře. To je přece jen trochu divné, ne?


Nejlepší výsledek:
- CP850

Konfigurace protokolu IP systému Windows
Adaptér bezdrátové sítÏ LAN Bezdrátové p²ipojení k síti:

   Stav média  . . . . . . . . . . . : odpojeno
   P²ípona DNS podle p²ipojení . . . : 



U názvu souborů:
- ISO-8859-2
ěščřžýáíéúó.txt
Původní název: ěščřžýáíéúó.txt


Ale ale, zdá se že tady je chyba u mě. Zkopíroval jsem jiný text, než jaký se teď objevil v odeslaném příspěvku...
Keeehi
Profil
<?php
header("Content-Type: text/plain; charset=\"UTF-8\"");
preg_match('~\d+~',shell_exec("chcp"),$match);

$string = shell_exec("ipconfig");

echo iconv("CP$match[0]", "UTF-8", $string);

Jinak u mě je defaultní kódování CP852.
Majkl578
Profil
Darker:
To je mi k ničemu.
A zkoušel jsi tu funkci volat s parametrem 's'? Defaultní je totiž 'a', což je kompletní uname. Stačí číst dokumentaci a ne slepě kopírovat.

Example #1 je také poměrně výmluvný.

shell_exec("ipconfig")
ipconfig na Linuxu neexistuje.

Keeehi:
shell_exec("chcp")
chcp na Linuxu neexistuje.
Keeehi
Profil
Majkl578:
Řekl bych, že to je snad každému jasné, když jsou to jiné operační systémy.
Darker
Profil
Majkl578:
ipconfig na Linuxu neexistuje.
chcp na Linuxu neexistuje.
Díky konstantě PHP_OS pro mě určitě nebude problém si nejdřív ověřit, zda PHP běží pod windows.

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: