在htaccess中设置charset时,是否需要设置php charset?

时间:2013-04-27 23:22:12

标签: php .htaccess header meta

时是否需要设置PHP header('Content-type: text/html; charset=utf-8');
AddDefaultCharset utf-8
<IfModule mod_mime.c>
  AddCharset utf-8 .php .html .xml .css .js .json
</IfModule>

是在我的.htaccess文件中定义的? .php文件是否甚至受此规则的影响?

我正在设置一个settings.cfg.php - 文档,并想知道我是否真的需要这行代码 - 如果它有点矫枉过正。

我知道不需要,但强烈建议将<meta charset="utf-8">保留在index.php - 文档中,因为最终用户无权修改我的Apache服务器设置。但这只会影响客户端内容,而不会影响PHP从服务器端创建的内容 - 如果有任何意义......

编辑:这是我的index.php:
load.initialize.php 需要最顶层的settings.cfg.php文档......

<?php require_once 'initialize/load.initialize.php'; ?>
<!DOCTYPE html>
<head>
<meta charset="utf-8">
    ...
</head>
<body>
<!--
    this document includes page -header, -navigation, -content and -footer,
    where the content-part is just including other .php content pages or fetching content from database.
-->
<?php require 'template/load.template.php'; ?>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

你的标题已经传递了htaccess(如果它被触发)并且你不需要在PHP中再次定义字符集,但是html属性仍然很好。

确认这一点的一个好方法是检查来自终端等的卷曲请求,看看原始标题是什么样的(简单的卷曲-v http://example.com/会这样做)。检查前后检查是否有差异以确认。