我正在尝试使用setlocale的俄语:
setlocale(LC_TIME,"ru_RUS.utf8");
echo strftime("%A, %B %d", time());
输出是: 8月29日星期四
预期是: четверг,Август29
任何帮助都将受到高度赞赏。
答案 0 :(得分:12)
setlocale(LC_ALL, 'ru_RU.UTF-8');
将正常工作。如果您使用的是Windows托管,请尝试:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
setlocale(LC_ALL, 'russian');
答案 1 :(得分:4)
对于俄语语言环境和UTF-8,可以使用此类代码。在 Widows 和 Unix 中工作。
header('Content-type: text/html; charset=utf-8');
$locale_time = setlocale (LC_TIME, 'ru_RU.UTF-8', 'Rus');
function strf_time($format, $timestamp, $locale)
{
$date_str = strftime($format, $timestamp);
if (strpos($locale, '1251') !== false)
{
return iconv('cp1251', 'utf-8', $date_str);
}
else
{
return $date_str;
}
}
echo strf_time("%A, %B %d", time(), $locale_time);
结果:
вторник, Октябрь 13
答案 2 :(得分:2)
var_dump(setlocale(LC_ALL, 'ru_RU.utf8'));
函数setlocale返回系统调用的结果。我认为它应该是RU,而不是Ru。
答案 3 :(得分:0)
我遇到了类似的问题。 我刚刚在我的系统上添加了缺少的语言环境。 对于 Ubuntu,如果您需要在下面添加俄语语言环境类型:
sudo locale-gen ru_RU
sudo locale-gen ru_RU.UTF-8
sudo update-locale
不要忘记重启你的php-fpm