3

わかりました、ここで何が問題なのですか?

header('Content-type: text/html; charset=utf-8');

setlocale(LC_ALL, NULL);
setlocale(LC_ALL, 'pt_BR');

echo "<p>São Paulo, " . date("d \d\e F \d\e Y", time()) . "</p>";

echo "<p>Preferred locale on this system is '" . setlocale(LC_ALL, NULL) . "'</p>";

エコー:

São Paulo, 24 de April de 2012
Preferred locale on this system is 'Portuguese_Brazil.1252'

次のようなものも試しました:

setlocale(LC_ALL, 'Portuguese_Brazil.1252', 'bra', 'brazil', 'pt_BR', 'pt_BR.iso-8859-1', 'pt_BR.utf-8', 'portuguese', 'portuguese-brazil', 'ptb');

しかし、「aPril」が「aBril」になるわけではありません。

どうも。

PS: ドキュメントは IDE でフォーマットされた UTF.8 (BOM なし) です。

4

2 に答える 2

3

共有ホスティングでも同じ問題が発生し、独自のロケール機能を作成しました。

アップデート:

言語をインストールした場合は、date() の代わりに strftime() を使用してください。

PHP ドキュメントから:

他の言語で日付をフォーマットするには、date() の代わりに setlocale() および strftime() 関数を使用する必要があります。

これを試して:

header('Content-type: text/html; charset=utf-8');

setlocale(LC_ALL, NULL);
//setlocale(LC_ALL, 'Portuguese_Brazil.1252'); ERROR in nowadays
setlocale(LC_ALL, 'pt_BR.utf-8'); // UTF-8 is the correct!

echo "<p>São Paulo, " . strftime("%d de %B de %Y", time()) . "</p>";

echo "<p>Preferred locale on this system is '" . setlocale(LC_ALL, NULL) . "'</p>";
于 2012-06-07T07:46:42.790 に答える