日期:2014-05-17  浏览次数:20579 次

关于echo输出的字符串乱码问题
首先我肯定不是ContentType的问题,因为页面已经声明ContentType,而页面其余的部分中文显示正常.
 
  问题描述:
  $req = $_SERVER['REQUEST_URI']; // 这里可以拼写错误,程序里没错
   
  $pattern = "#.*#i";  
  preg_match_all($pattern,$req,$mats,...) // ...是那个标记
  print_r($mats); // 输出已匹配的数组,问题来了,$mats为空数组
   
  echo $req; // 在firefox下查看源码,字符串没有问题
  // 但是把这个字符串复制到notepad++里,就是????index.php?page=1
  // 出现了几个????,这是乱码?

  对我来说,影响最大的就是preg_match_all匹配不了的问题,因为我要通过正则匹配实现"伪静态"的.
  另外一个,我一说就会让这个问题变得更操蛋.
  我现在有三个页面,其他两个页面的做法是一样的,结果也是正常的,唯独这个页面....
  最后我没办法,只得把参数改回index.php?m=1&page=1的形式.

  求解答,谢谢.
   
   
 

------解决方案--------------------
编辑器与你的程序编码不一致。。你统一下即可。
------解决方案--------------------
JF 估计是伪静态正则匹配 里面有错误
------解决方案--------------------
编码不一致复制的过程复制了一些其他字符 导致无法正常显示.
------解决方案--------------------
BOM 头???
------解决方案--------------------
探讨
echo $req; // 在firefox下查看源码,字符串没有问题
// 但是把这个字符串复制到notepad++里,就是????index.php?page=1
// 出现了几个????,这是乱码?