编码问题!!!!
本打算断一段时间的网,现在又遇到编码问题。。。网上关于编码问题的解决方法不少,但都大同小异
一个共同的性质是:都是授人鱼而非授人渔
都只是浮浅地说了下用哪句代码,
结果,如果你的环境与作者的有所不同,
那方法就不能奏效
这帖要把这个完全搞清!
各位有任何关于编码问题的欢迎跟帖 问题描述:
文件:
index.htm
部分代码:
JS代码:
function loginsubmit(t){
var str="loginid="+t.loginid.value;
str+="&loginpassword="+t.loginpassword.value;
str+="&logintype="
for(var j=0;j<2;j++)
if(t.logintype.status)
str+=t.logintype.value;
SendJS("test.php",cblogin,str);
}
sendJS为一个XMLHTTPRequest封装。。中间代码省略
test.php (ANSI)
<?php
mysql_connect("localhost","XXX","XXX");
mysql_select_db("school");
//mysql_query("set names 'gbk'");
$r=mysql_query("select * from student where id=3XXXXXXXX");
$rr=mysql_fetch_assoc($r);
$t=$rr['name'];
echo($t."中文");
?>
返回的$rr['name']为三个中文字
MySql设置:default charset: gbk 数据库的表也是gbk
INDEX.htm为 ANSI
test.php为ANSI时,返回的name为 ?????
index.htm为ANSI
test.php为UTF-8时,返回的name为???中文
[ 本帖最后由 iptton 于 2007-5-18 23:14 编辑 ] <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
index.htm有设这句与head处
另:上面的JS代码是在另一JS文件上的 test.php上的这句
header('Content-type: text/html;charset=GB2312'); 网上搜到的最常见的答案是:
所有页面用UTF-8
不过这个明显不是时时奏效 现在发现我的问题是:
XHR的实现用了GOOGLE的代码:
try {
xhr = new XMLHttpRequest();
} catch (e) {
var a = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'MICROSOFT.XMLHTTP.1.0',
'MICROSOFT.XMLHTTP.1', 'MICROSOFT.XMLHTTP'];
for (var j = 0; i < a.length; j++) {
try {
xhr = new ActiveXObject(a);
break;
} catch (e) {
alert("你的浏览器没支持XMLHTTPRequest,无法正常使用此系统");
}
}
}
换成这个:一切都没问题了。。。
if(window.ActiveXObject)
xhr=new ActiveXObject("Microsoft.XMLHTTP");
else
xhr=new XMLHttpRequest();
http://dev.mysql.com/doc/refman/5.1/zh/charset.html
所看过的说得最详尽的关于MYSQL编码问题 oh,no,完全不懂....
页:
[1]