Я пытаюсь передать текст UTF-8 в качестве аргумента в программу командной строки с использованием функции exec php и возникли проблемы. Я подозреваю, что это связано с проблемами кодирования символов.
Когда я вызываю locale charmap из командной строки, я получаю: UTF-8 .
Но когда я сделаю:
<?php echo exec('locale charmap'); ?>
я получил
ANSI_X3.4-1968
Как я могу это изменить? Это не то, что я хочу установить один раз – я буду работать с разными языками / кодировками, поэтому каждый вызов функции exec() может потребовать другой. Но даже знать, как настроить его на UTF-8 один раз, было бы полезно.
Префикс команды с помощью LANG = <language>.UTF8 .
Пример:
$ php -r "echo exec ('LANG = \" en_US.UTF8 \ "locale charmap');"
UTF-8,
$ php -r "echo exec ('LANG = \" en_US.iso88591 \ "locale charmap');
ISO-8859-1
У вас должен быть установлен языковой стандарт.