Кодировка командной строки PHP UTF-8 для Windows
все в вопросе: у меня есть php-скрипт, который является файлом UTF-8. В этом скрипте я хочу сделать следующее:
<?
echo "âêïûn";
?>
Если я запускаю его в командной строке Windows, я получаю следующее:
C:php>php -c C:WINDOWSphp.ini -f mysqldump.php
âêïû
C:php>
Я не смог найти правильную схему преобразования. Я пробовал Также этот код:
$tab = mb_list_encodings();
foreach ($tab as $enc1) {
foreach ($tab as $enc2) {
$t=mb_convert_encoding("âêïûn", $enc1, $enc2);
if (strlen($t)<14) {
echo $enc1." ".$enc2." = ".$t."n";
}
}
}
и я не нашел правильного преобразования !
любая помощь была бы очень признательна
3 ответов
проблема в том, что строка Windows cmd по умолчанию не поддерживает UTF8. От этого ссылке, Если вы будете следовать этим
- откройте окно командной строки
- изменить свойства окна, чтобы использовать что-то кроме шрифт по умолчанию. кажется, что шрифт True Type консоли Lucida работает хорошо.
- запустите "chcp 65001" из командной строки
вы должны иметь возможность выводить utf8.
вы поставили меня на правильный путь, но была проблема kinddof (я люблю Windows \o/):
C:\php>chcp 65001
Page de codes active : 65001
C:\php>php -c C:\WINDOWS\php.ini -f mysqldump.php | more
Mémoire insuffisante.
Mémoire insuffisante = недостаточно памяти.
Если я попробую
C:\php>chcp 1252
C:\php>php -c C:\WINDOWS\php.ini -f mysqldump.php
C:\php>ééîîïïÂÂÂÂâûü
это работает. Одному Богу известно почему. Но это работает. Спасибо, что вывел меня на правильный путь !!
кстати, php-код для правильной формы UTF8 в командной строке:
echo mb_convert_encoding($utf8_string, "pass", "auto");