解决php5+mysql5.1.1+html+javascript之间的编码问题

首先要确定搭配为php5+mysql5.1.1+apache2.2.3,因为其他没有测试。

php5+mysql5.1.1+html+javascript之间搭配其实最重要的还是要看javascript。因为javascript传值用的是utf-8,所以在页面编码为gb2312传递中文的时候可能会出问题。基于这点考虑,我们就将这里面所有的编码都设置为utf8。

mysql设置很简单,只要在创建数据库的时候指定为utf8就好了。

php文件中,在查询数据库的时候要在mysql_db_query或者mysql_query之前加上mysql_query("SET NAMES utf8");在要生成的html中的<head></head>之间加上<meta http-equiv="Content-Type" content="text/html" charset="utf-8" />。

在javascript向服务器提交中文参数的时候要用encodeURIComponent ()函数。例如:
function InitSelectName()
{
    
var select_name=document.getElementById("select_name");

                select_name.onchange
=function (){StartRequest("selectbelongings.php?user_id="+encodeURIComponent (this.options[this.selectedIndex].value));}
        
}

大家可以参考文章http://blog.terac.com/andy/e_181.html

最后还有一步,是在网上看到的,就是所有的网页文件保存的格式一定要是utf8编码的。

补充:对于utf8编码要注意,要保存为utf8无标记格式。有一种utf8有标记格式会对php解析产生扰乱。高级的代码编辑器都可以选。而记事本默认的就是有标记的utf8,不能用。

我按照这套步骤试验了几次都没有问题。ie6,ff1.5均通过。



posted on 2006-08-25 19:14  poppy_rr  阅读(501)  评论(0编辑  收藏  举报