Смена кодировки консоли из скрипта

Статус
В этой теме нельзя размещать новые ответы.

latteo

Эффективное использование PHP, MySQL
Регистрация
27 Фев 2008
Сообщения
1.603
Реакции
1.565
Вот пример кода как это я пытаюсь сделать:

PHP:
$string = "\nEnglish VS русский ё VS український і VS ...\n";


system ('chcp 1251');
system  ('mode con: cp select=1251');
sleep (1);
echo $string;

shell_exec ('chcp 1251');
shell_exec  ('mode con: cp select=1251');
sleep (1);
echo $string;

exec ('chcp 1251');
exec  ('mode con: cp select=1251');
sleep (1);
echo $string;

system ('chcp.bat'); // mode con: cp select=1251
sleep (1);
echo $string;
скрипт сохранен в ansi кодировке. До этого пробовал с utf - тоже безуспешно.
Все функции отчитываются об успешном выполнении команды и изменении кодовой странице, на практики же скрипт выводится в бракозяблах. Выполнение любой из команд для смены кодировки в консоли перед выполнением скрипта приводит к желаемому результату, так что системный глюк исключаю.
Баловство с default_charsetв php.ini видимых изменений не даю.
Какие есть идеи?
 

e64f

Постоялец
Регистрация
2 Ноя 2008
Сообщения
95
Реакции
6
А не проще не менять кодировку консоли?!

Работайте в текущей кодировке, а вывод консоли конвертируйте в нужную кодировку.


И еще у вас в скрипте, 3 раза одно и то же написано, может в этом дело?
 

latteo

Эффективное использование PHP, MySQL
Регистрация
27 Фев 2008
Сообщения
1.603
Реакции
1.565
Подстраиватся под кодировку консоли это конечно решение хорошее, но оно не всегда является оптимальным. Да и уже из спортивного интереса хочется разобратся в чем косяк.

В скрипте 3 раза вызываются одинаковые функции консоли, но через разные php функции в надежде, что хоть одна да сработает... Применение их по отдельности тоже результата не дает.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху