當我創建非英語頁面(例如,俄語),我必須使用header()函數來設置頁面的字符集(我用UTF-8):如何設置默認的PHP頭()
header('Content-Type: text/html; charset=utf-8');
但我所有的頁面都應該有UTF-8字符集,在PHP中有沒有一個propery默認設置它(我的意思是:我不想每次都設置它)。
當我創建非英語頁面(例如,俄語),我必須使用header()函數來設置頁面的字符集(我用UTF-8):如何設置默認的PHP頭()
header('Content-Type: text/html; charset=utf-8');
但我所有的頁面都應該有UTF-8字符集,在PHP中有沒有一個propery默認設置它(我的意思是:我不想每次都設置它)。
您可以使用.htaccess文件做到這一點:
AddDefaultCharset UTF-8
如果你想要的東西有點更強大的,你可以僅針對特定的文件類型指定此charset類型:
<FilesMatch ".(htm|html|css|js)$">
AddDefaultCharset UTF-8
</FilesMatch>
也看到這篇文章做它的其他方式: http://www.askapache.com/htaccess/setting-charset-in-htaccess.html
因此,要設置語言,我應該使用:AddLanguage ru-Ru .html .htm .css .js或其他東西? – mirelana
是的,這應該是可能的。您也可以使用'DefaultLanguage'指令,例如'DefaultLanguage en-US'。 –
你的問題沒有太多與PHP。你的httpd配置不正確(即在許多發行版的Apache默認情況下使用來與AddDefaultCharset
設置爲Latin1
整個.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 diles 2天
<FilesMatch "\.(html|htm|xml|txt|xsl)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>
您可以使用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);
希望它會幫助你http://stackoverflow.com/questions/2139699/set-http-header-for-all-php-scripts-via-htaccess-file – Fallen