7

setlocale でロシア語を使用しようとしています:

setlocale(LC_TIME,"ru_RUS.utf8");
echo strftime("%A, %B %d", time());

出力は : 8 月 29 日木曜日

期待値: четверг, Август 29

どんな助けでも大歓迎です。

4

4 に答える 4

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
于 2015-10-13T16:29:06.203 に答える
0

同様の問題に遭遇しました。システムに不足しているロケールを追加しました。Ubuntu の場合、以下にロシア語のロケール タイプを追加する必要がある場合:

sudo locale-gen ru_RU
sudo locale-gen ru_RU.UTF-8
sudo update-locale 

その後、php-fpmを再起動することを忘れないでください

于 2021-07-13T11:15:17.897 に答える