如果编码utf-8

时间:2016-01-15 04:42:10

标签: php encoding utf-8

我有一个PHP文件,保存为utf-8编码。该文件具有标题重定向功能,上面没有任何空格或html。如果在本地机器上运行它没有任何问题。但如果在网上运行显示错误:

  

警告:无法修改标头信息 - 已发送的标头   (输出从/home/nikahservi/public_html/Admin/Home.php:1开始)   第1行/home/nikahservi/public_html/Admin/Home.php

我试过以下三种代码:请帮助我。

1)
<?php header("Location:index.php");exit();?>

2)
<?php header('Content-Type: text/html; charset=utf-8');
header("Location:index.php");exit();?>

3)
<?php header("Cache-Control: no-cache, must-revalidate");header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");header('Content-Type: text/html; charset=utf-8');
header("Location:index.php");exit();?>

2 个答案:

答案 0 :(得分:0)

意外的空格,通常在文件的开头或结尾,如下所示:

THERE SHOULD BE NO BLANK SPACES HERE
<?php  

   echo "your code here";

?>
DO CHECK FOR BLANK SPACES HERE AS WELL; THIS LINE (blank line) SHOULD NOT EXIST.

如果不是这种情况,那么您可以使用ob_start进行输出缓冲,如下所示:

可能的解决方案2:

<?php
  ob_start();

  // code 

 ob_end_flush();
?> 

OR

  • :之后应该有一个空格,因此它会显示"Location: http://foo"
  • Location中使用相对网址无效 标题,你应该形成一个绝对的URL http://www.example.com/some/path.php

答案 1 :(得分:0)

最后,我通过将Windows的默认记事本更改为Notepad ++找到了解决方案。该错误是由记事本中的病毒创建的。病毒给记事本带来了隐藏的价值。所以现在一切都很清楚了。