【发布时间】:2014-07-26 16:51:22
【问题描述】:
尝试从 ANSI 转换为 UTF-8 时出现错误。
警告:session_start() [function.session-start]:无法发送会话 缓存限制器 - 标头已发送(输出开始于 mysite.co\index.php:1) 在 mysite.co\application\controllers\admin.php 在第 11 行
index 文件不包含任何空格或 HTML。
<?php
// load the (optional) Composer auto-loader
if (file_exists('vendor/autoload.php')) {
require 'vendor/autoload.php';
}
// load application config (error reporting etc.)
require 'application/config/config.php';
// load application class
require 'application/libs/application.php';
require 'application/libs/parametres.php';
require 'application/libs/controller.php';
require 'application/libs/modules.php';
require 'application/libs/MysqliDb.php';
// start the application
$app = new Application();
?>
如果我删除所有代码并将session_start() 粘贴到第一行,我仍然会收到该错误。
我需要 UTF-8 来使用不同的字符集(而不是没有 BOM 的 UTF-8)
我知道这个错误可能是由<?php和其他数据块之前的空格引起的,但它是干净的。
也许是因为.htaccess,但我不知道为什么......
Options -MultiViews
RewriteEngine On
Options -Indexes
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
【问题讨论】:
-
我认为en.wikipedia.org/wiki/Byte_order_mark 有问题,但如何解决?
-
删除 BOM。任何体面的编辑器都可以让您在没有 BOM 的情况下保存文件
-
谢谢,但是当我在没有 BOM 的情况下使用时,我会得到所有非拉丁字符,例如
аппва -
共享文件以便我们查看
-
你在哪里看到这些字符?在 PHP 提供的渲染输出中?
标签: php .htaccess mod-rewrite encoding utf-8