PHP: setlocale в Windows 7

У меня проблема с функцией setlocale в PHP 5.3 в Windows 7.

Мне нужно установить русскую локаль с кодировкой UTF-8. Я видел некоторые решения, где это Russian_Russia.65001, но функция с этим типом локали возвращает FALSE.

Все решения были разработаны для использования в Windows XP, где список локалей находился в Панели управления. В Windows 7 эта функция была удалена.

Ответы на вопрос(2)

Это работает для меня на Windows 7

putenv('LANG=fr_CA.UTF-8');
setlocale(LC_ALL,'fr_CA.UTF-8');
bindtextdomain('translation','./language');
bind_textdomain_codeset('translation','UTF-8');
textdomain('translation');

Путь к .po / .mo файлам

./language -> fr_CA.UTF-8 -> LC_MESSAGES -> translation.po
./language -> fr_CA.UTF-8 -> LC_MESSAGES -> translation.mo
 CloutsCa20 мая 2014 г., 20:56
Конечно, здесь fr_CA означает французско-канадский (не русский)
 Engineer Dollery20 мая 2014 г., 21:16
Добро пожаловать в ТАК, и спасибо за ваш ответ. Если вы посмотрите на вопрос более подробно, вы заметите, что ему почти 2 года, и автор уже принял ответ, который, по его мнению, ответил на их вопрос адекватно. Этот вопрос имел почти тысячу просмотров, поэтому вы, возможно, когда-нибудь поможете кому-то с этим, но на самом деле ваш фокус лучше тратить на более свежие вопросы. Еще раз, спасибо за ваш ответ, это ценно, я просто пытаюсь помочь вам в использовании SO и участии в сообществе.
Решение Вопроса

Нельзя использовать локали UTF-8 в системах Windows.:

Если вы предоставите кодовую страницу, такую как UTF-7 или UTF-8, setlocale завершится ошибкой, возвращая NULL.

Только кодовая страница WindowsRussian_Russia.1251 будет работать (см. Таблица мест Moodle).

Вы все еще можете попробовать установить оба и посмотреть, какой из них идет через:

if ($newLocale = setLocale(LC_CTYPE, 'ru_RU.UTF-8', 'Russian_Russia.1251'))
{
   echo 'Locale is now set to: ' . $newLocale;
}
 andre48721 апр. 2013 г., 08:00
Спасибо за ответ
 piotr_cz22 апр. 2013 г., 09:46
Этот маленький код - результат полудневного исследования :) Я просто надеюсь, что у госпожи есть веские причины не поддерживать UTF-8. Это 2013 год!

Ваш ответ на вопрос