当我创建非英文页面(例如,俄语)时,我必须使用header()来设置页面的字符集(我使用UTF-8):
header('Content-Type: text/html; charset=utf-8');
但是我的所有页面都应该有UTF-8字符集,默认情况下是否存在php设置它(我的意思是:我不想每次都设置它)。
答案 0 :(得分:1)
您可以使用.htaccess文件执行此操作:
AddDefaultCharset UTF-8
如果您想要更强大的功能,可以仅为特定文件类型指定此字符集类型:
<FilesMatch ".(htm|html|css|js)$">
AddDefaultCharset UTF-8
</FilesMatch>
另请参阅此文章了解其他方法: http://www.askapache.com/htaccess/setting-charset-in-htaccess.html
答案 1 :(得分:1)
整个.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>
答案 2 :(得分:1)
您可以使用define()设置默认字符集。
来自PHP documentaion 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);
答案 3 :(得分:-1)
PHP的问题并不多。您的httpd配置不正确(例如,默认情况下,Apache曾经将AddDefaultCharset
设置为Latin1
时附带的许多发行版。