homm
Новичок
локаль UTF-8 под windows
Добрый день. У меня проблема с которой я истрахал весь мозг гуглу, но решения так и не нашел.
Я пишу приложение под windows, используя фреймворк, который работает под utf-8 и использует функцию parse_url. Как оказалось, результат выполнения этой функции зависит от текущей локали и при передаче ей utf-8 строки при выставленной иной локали, результат может быть не предсказуемым. Это можно проверить на следующем примере:
у меня результат выполнения для локали «Russian_Russia» такой:
Добрый день. У меня проблема с которой я истрахал весь мозг гуглу, но решения так и не нашел.
Я пишу приложение под windows, используя фреймворк, который работает под utf-8 и использует функцию parse_url. Как оказалось, результат выполнения этой функции зависит от текущей локали и при передаче ей utf-8 строки при выставленной иной локали, результат может быть не предсказуемым. Это можно проверить на следующем примере:
PHP:
$str = "АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯабвгдеёжзиклмнопрстуфхчшщъыьэюя";
echo "<hr>".$str."<hr>";
echo parse_url($str, PHP_URL_PATH)."<hr>";
соответствеено, нужно поставить верную локаль, тобишь «Russian_Russia.UTF-8» или любую другую utf-8 локаль. Или может быть как-то другим способом, без локалей выправить внутреннюю кодировку PHP. Под линуксом проблем нет, там локали на основе UTF-8 родные, а как это сделать под windows — я так и не нашел решения.АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯабвгдеёжзиклмнопрстуфхчшщъыьэюя
АБВГДЕЁЖЗ�_КЛМНОПРСТУФХЧШЩЪЫЬЭЮЯабвгдеёжзиклмнопрстуфхчшщъыьэюя
