英語以外のページ (ロシア語など) を作成するときは、header() を使用してページの文字セットを設定する必要があります (私は UTF-8 を使用します)。
header('Content-Type: text/html; charset=utf-8');
しかし、私のすべてのページには UTF-8 charset が必要です。php にデフォルトで設定するプロパティがありますか (つまり、毎回設定したくありません)。
.htaccess ファイル全体
htaccess 構成ファイル全体を見て、すべての構成オプションを見てみましょう。
Header unset Pragma
FileETag None
Header unset ETag
画像/PDF ドキュメントを 10 日間キャッシュする
<FilesMatch "\.(ico|pdf|jpg|jpeg|png|gif)$">
Header set Cache-Control "max-age=864000, public, must-revalidate"
Header unset Last-Modified
</FilesMatch>
html/htm/xml/txt ファイルを 2 日間キャッシュする
<FilesMatch "\.(html|htm|xml|txt|xsl)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>
.htaccess ファイルを使用してそれを行うことができます。
AddDefaultCharset UTF-8
もう少し堅牢なものが必要な場合は、特定のファイル タイプのみにこの文字セット タイプを指定できます。
<FilesMatch ".(htm|html|css|js)$">
AddDefaultCharset UTF-8
</FilesMatch>
他の方法については、この記事も参照してください: http://www.askapache.com/htaccess/setting-charset-in-htaccess.html
デフォルトの文字セットを設定する define() を使用できます。
PHP ドキュメントからhttp://www.php.net/manual/en/regexp.reference.unicode.php
$text = '';//some russian content
define('CHARSET', preg_match( '/[\p{Cyrillic}]/u', $text) ? 'windows-1251' : 'utf-8');// or fetch charset from DB some other resource
header('Content-Type: text/html; charset='.CHARSET);
あなたの問題はPHPではあまりありませんでした。httpd が正しく設定されていません (つまり、多くのディストリビューションでは、Apache はデフォルトで にAddDefaultCharset
設定されていました。Latin1