php+apache+mysql 编程,字符集问题弄得我头疼,有时候调试好,也没修改什么代码,再打开中文又成乱码了,有的时候同一个页面有的中文是乱码有的中文不是乱码,有的时候中文虽然不是乱码但是是不应该出现的字(比如本来是一个常见字,显示出来却是相对生僻的字)...等等问题  我在搜索引擎找了一些,但是没有找到针对我的疑惑的教程,一般都是教解决方法,有些看了还是不知其所以然,所以在这里恳请各位能对我做个一对一的辅导,先谢过了!我大概总结了下面几个问题,请熟悉这方面的予以解答:一、以下方式的作用是?(或者告诉我每一个操作能“作用到”的范围,比如只针对搜索结果的字符、只针对该网页等)1.在php.ini 里面修改  default_charset = "utf-8" 2.网页文件,另存为的时候,字符选项,如utf-8,ANSI等。3.在php代码的第一行加入:header('Content-type: text/html;charset=GB2312');4.在php查询语句之前: mysql_query("set names GB2312");5.在Apache的 httpd.conf 里添加 AddDefaultCharacter utf-8(大致是这样的一行语句,这个是今天搜索看到的,没有记清楚)
二、如果不同部分用到不同字符集,这些不同的部分应该怎么“对接”才不会出错(乱码、“不该出现的字符”、问号等)  比如 数据库用的是A字符集,页面1,2用的是B字符集,页面1是后台php代码,页面2是前台html代码,页面2 将 页面1查询出并echo出来的字符  显示到自己的<span>里面(好比Ajax技术),这个时候页面1里面有两方面的字符,一个是从数据库查询出来的结果;一个是自己绘制的一个table,这个table的列名称都是 echo "<tr><td>列1</td><td>列2</td></tr>" 这样出来的。也就是说,这个table“自身”带的字符应该是和页面1一致的,即A字符集;表格要填充的内容,也就是查询结果,应该是和数据库一致的,即B字符集。要将这两块混合后(也就是填充过的表)由页面2读走,是不是很容易出现乱码?应该怎么操作?如果我描述的不清楚,请向我回帖提出来,不胜感激!

解决方案 »

  1.   

    建议用默认的PHP,MYSQL设置,默认都是UTF8的吧改服务器配置难,改网站代码容易,有兼容问题就改网站代码吧网页用notepad++打开,然后另存为UTF8无BOM格式,再把网页编码改成GB2312,基本上没啥问题了
      

  2.   

    整理了一下:
    php+apache+mysql web开发字符集编码(utf8)乱码问题解决办法(详解)
    http://www.zzxj.net/blog/fxs_2008/archive/2009/09/20/58.html
      

  3.   

    http://marcobar.blogbus.com/logs/38250689.html