工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1443|回复: 7

编码问题!!!!

[复制链接]
发表于 2006-11-10 18:14 | 显示全部楼层 |阅读模式
本打算断一段时间的网,现在又遇到编码问题。。。
网上关于编码问题的解决方法不少,但都大同小异
一个共同的性质是:都是授人鱼而非授人渔
都只是浮浅地说了下用哪句代码,
结果,如果你的环境与作者的有所不同,
那方法就不能奏效


这帖要把这个完全搞清!

各位有任何关于编码问题的欢迎跟帖
 楼主| 发表于 2006-11-10 18:23 | 显示全部楼层
问题描述:
文件:
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[j].status)
                        str+=t.logintype[j].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 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2006-11-10 18:27 | 显示全部楼层
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

index.htm有设这句与head处

另:上面的JS代码是在另一JS文件上的
回复

使用道具 举报

 楼主| 发表于 2006-11-10 18:31 | 显示全部楼层
test.php上的这句

header('Content-type: text/html;charset=GB2312');
回复

使用道具 举报

 楼主| 发表于 2006-11-10 18:57 | 显示全部楼层
网上搜到的最常见的答案是:

所有页面用UTF-8


不过这个明显不是时时奏效
回复

使用道具 举报

 楼主| 发表于 2006-11-10 19:16 | 显示全部楼层
现在发现我的问题是:

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[j]);
        break;
      } catch (e) {
                alert("你的浏览器没支持XMLHTTPRequest,无法正常使用此系统");
      }
    }
  }

换成这个:一切都没问题了。。。
  if(window.ActiveXObject)
        xhr=new ActiveXObject("Microsoft.XMLHTTP");       
else
        xhr=new XMLHttpRequest();
回复

使用道具 举报

 楼主| 发表于 2006-12-27 00:42 | 显示全部楼层
http://dev.mysql.com/doc/refman/5.1/zh/charset.html

所看过的说得最详尽的关于MYSQL编码问题
回复

使用道具 举报

发表于 2007-1-2 19:26 | 显示全部楼层
oh,no,完全不懂....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-6-13 12:55

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表