解决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 ()函数。例如:
大家可以参考文章http://blog.terac.com/andy/e_181.html。
最后还有一步,是在网上看到的,就是所有的网页文件保存的格式一定要是utf8编码的。
补充:对于utf8编码要注意,要保存为utf8无标记格式。有一种utf8有标记格式会对php解析产生扰乱。高级的代码编辑器都可以选。而记事本默认的就是有标记的utf8,不能用。
我按照这套步骤试验了几次都没有问题。ie6,ff1.5均通过。
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));}
}
{
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均通过。