MYSQL生僻字乱码问题

liuhuyydy 发布于 2012/07/04 18:20
阅读 2K+
收藏 1

问题描述:

WEB页面是GB2312的编码,提交的中文字符是"濛",数据表block(表编码是GB2312,但是blockname字段编码为gbk,这是之前人设计的),通过编辑页面提交信息,数据库中显示"濛"为乱码,但是WEB展示的时候确实正常的。

表编码:

block表编码

字段编码:

字段编码

数据库乱码:

数据库乱码

前台显示:

直接数据库搜索:

数据库搜索

 

 

追加提问:WEB是GB2312,这个是之前的程序,在数据库直接搜索可以搜索到。

想问: 1、为什么数据库中会显示乱码,改如何解决?

           2、前台搜索框通过js提交按照blockname关键字搜索无法返回结果(详细代码如下),有什么好办法?    

<script language="javascript">
new Autocomplete("blockshowname", function() {
return "action.php?q="+document.getElementById("blockshowname").value;
});
</script>
$sql = "SELECT blockname  FROM block  WHERE blockname LIKE '".$blockname."%' 
       ORDER BY bi_s,bi_spell  LIMIT 100";
$rs = $db->GetAll($sql);

通过页面js从action.php返回搜索结果,数据库语句检索不到数据。

 

 小弟菜鸟研究了半天不知道该怎么做。

加载中
0
liuhuyydy
liuhuyydy
转码的编码要和数据库编码一致。
1
mallon
mallon
改UTF-8
红薯
红薯
换 UTF-8 就没压力
0
liuhuyydy
liuhuyydy
希望不要沉了,各位高手给提供点思路。
0
liuhuyydy
liuhuyydy

引用来自“mallon”的答案

改UTF-8
不能改啊,公司的网站比较老,全站都是用的gb2312。
0
霸气千秋
霸气千秋
亲,你要明白gb2312的字符集比较小,有些生僻字是不存在的
0
deleted
deleted

濛根本不在gb2312里, 不换能怎么样.....

0
mallon
mallon

引用来自“勇者天空”的答案

濛根本不在gb2312里, 不换能怎么样.....

就是,什么年代了还GB2312
0
fengyqf
fengyqf
js调用是ajax的吗?ajax默认utf8,你把相关sql输出来看是不是乱码
0
liuhuyydy
liuhuyydy

引用来自“fengyqf”的答案

js调用是ajax的吗?ajax默认utf8,你把相关sql输出来看是不是乱码
SQL打印了不是乱码。
返回顶部
顶部