Я пытаюсь передать текст 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
У вас должен быть установлен языковой стандарт.