3

当我创建非英语页面(例如俄语)时,我必须使用 header() 来设置页面的字符集(我使用 UTF-8):

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

但是我所有的页面都应该有 UTF-8 字符集,php 中是否有一个属性可以默认设置它(我的意思是:我不想每次都设置它)。

4

4 回答 4

1

您可以使用 .htaccess 文件来执行此操作:

AddDefaultCharset UTF-8

如果你想要更健壮的东西,你可以只为特定的文件类型指定这个字符集类型:

<FilesMatch ".(htm|html|css|js)$">
    AddDefaultCharset UTF-8
</FilesMatch>

另请参阅本文了解其他方法: http ://www.askapache.com/htaccess/setting-charset-in-htaccess.html

于 2013-07-29T06:45:08.933 回答
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 文件 2 天

<FilesMatch "\.(html|htm|xml|txt|xsl)$">
  Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>
于 2013-07-29T06:48:53.690 回答
1

您可以使用 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);
于 2013-07-29T06:49:13.507 回答
-1

您的问题与 PHP 无关。您的 httpd 配置不正确(即在许多发行版 Apache 过去默认AddDefaultCharset设置为Latin1

于 2013-07-29T06:44:18.273 回答