我最近需要用js和json与mysql数据库做一个两级联动的下拉菜单,发现当从数据库中返回的是中文时客户端会出现乱码问题,经过在百度上查找终于找到了解决办法如下:

while($row=$MySqlconn->fetch_array($result)){                
               $select[] = array("id"=>$row['ID'],"title"=> $row['name']);                               
         } 
          foreach ( $select as $key => $value ) {                 
                  foreach($value as $k=>$v){                   
                         $select[$key][$k] = urlencode($v);

}  
         }

$select=json_encode($select);
        echo urldecode($select);

通过一个编码和一个解码过程把服务器端返回乱码问题解决了两级菜单可以正常工作了。

可是没过两天本来是在自己的服务器上运行的网站,因为一些原因需要迁移到一个租来的虚拟主机上,当我把网站迁移到虚拟主机上后,上面的问题又出现了,客户端又出现了乱码我尝试了很多方法,最后总算解决了代码如下:

while($row=$MySqlconn->fetch_array($result)){                
             $select[] = array("id"=>$row['ID'],"title"=> iconv("gb2312","utf-8//IGNORE",$row['names']));                               
         }  
          foreach ( $select as $key => $value ) {
                  foreach($value as $k=>$v){
                         $select[$key][$k] = urlencode($v);
                   }
         }   
        $select=json_encode($select);
        echo urldecode($select);
      看到有什么区别了吗?是多了这条语句iconv("gb2312","utf-8//IGNORE",$row['names'])

这样这个问题算是又解决了一次。

也说php从mysql数据库通过服务器端json返回数据出现乱码问题的更多相关文章

  1. 利用PHP实现登录与注册功能以及使用PHP读取mysql数据库——以表格形式显示数据

    登录界面 <body><form action="login1.php" method="post"><div>用户名:&l ...

  2. vc6.0运用mysql数据库中的编码所导致的乱码问题(接收和输出的编码必须要一致)

    [编译中遇见的问题]       ①在用vc 6.0去调用MySQL中的数据时,出现中文乱码       ②不明白mysql中的码制 [开始解决问题]      ①打开mysql控制台         ...

  3. Node.js连接MySQL数据库及构造JSON的正确姿势

    做一下整理,以前也很随意的引入包链接数据库,后来发现常常连接出问题,异常退出,后来使用在网上一个方法解决问题,网址由于书签丢失,抱歉不能引用了.再有就是简单的模块化下,使得目录合理点,再有就是说明一下 ...

  4. MySQL数据库导入或者同步大量数据时数据丢失解决方案

    相信大家都经常遇到这样的情况,我们在编码的过程中经常需要在调试代码的时候切换到本地的数据库上做修改调试,如果当测试数据库的数据在几十万或者上百万数据的时候,我们无论是通过恢复备份/导入SQL的方式来把 ...

  5. 通过java代码往mysql数据库中写入日期相关数据少13个小时

    通过show variables like '%time_zone%'; 查看时区: CST 时区 名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard ...

  6. Delphi7连接MySql数据库-DBGrid控件显示数据

    一个简单的Delphi7小程序,使用MySql数据库做简单查询,用DBGrid控件显示结果,实现过程如下: (1)在MySql中新建demouser表,插入记录用于测试. (2)在Delphi7中新建 ...

  7. 使用JDBC在MySQL数据库中快速批量插入数据

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: void addBatch ...

  8. Linux下修改MySQL数据库字符编码为UTF-8解决中文乱码

    由于MySQL编码原因会导致数据库出现乱码. 解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码. 具体操作: 1.进入MySQL控制台 &g ...

  9. MySQL数据库----IDE工具介绍及数据备份

    一.IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 二.MySQL数据备份 # ...

随机推荐

  1. Jmeter增加压力机方法

    windows: 需要别人的机器也安装jmeter 在别人的机器上运行jmeter-server.bat 修改jmeter.properties文件,查找remote_hosts 原始:remote_ ...

  2. Linux mint 14输入法问题

    新安装了Linux mint 14,莫名其妙地没有了中文输入法,安装并设置IBUS为默认输入法,但怎么也没反应.点击输入法图标,上面显示“No input window”,其实这不关输入法自身程序和设 ...

  3. POJ 2653

    题目大意:一个小孩不断往地上扔棍子,共n根,求结束后共有多少根不与去他相交. 解法思路:典型的判断线段相交问题,利用快速排斥+双跨立判断相交,最后输出没相交的. (图片来源:http://www.2c ...

  4. MSSQL—字符串分离(Split函数)

    前面提到了记录合并,有了合并需求肯定也会有分离需求,说到字符串分离,大家肯定会想到SPLIT函数,这个在.NET,Java和JS中都有函数,很可惜在SQL SERVER中没有,我们只能自己来写这么一个 ...

  5. java 读写properties

    网速不好:先贴上资料: Java配置文件Properties的读取.写入与更新操作 [Spring] - Property注入 http://www.360doc.com/content/14/073 ...

  6. 对象关联(associated objects)

    category与associative作为objective-c的扩展机制的两个特性,category即类型,可以通过它来扩展方法:associative,可以通过它来扩展属性:在iOS开发中,可能 ...

  7. ionic的tabs

    <ion-tabs class="tabs-icon-top/bottom(决定这个tabs是置于上面还是底部)  tabs-color-active-positive(图标与字体色) ...

  8. EF里一对一、一对多、多对多关系的配置

    EF关系规则 参考文章:http://www.cnblogs.com/feigao/p/4617442.html Entity Framework 实体间的关系,一对一,一对多,多对多,根据方向性来说 ...

  9. C# 获取 oracle 存储过程的 返回值

    存储过程 CREATE OR REPLACE PROCEDURE ADMIN.INSERT_OBJ ( OBJEFIRT_parms IN NVARCHAR2, OBJEDATT_parms IN N ...

  10. ORACLE执行详解

    本文源自TTT BLOG,原文地址:http://blog.chinaunix.net/u3/107265/showart_2192657.html 简介:     本文全面详细介绍oracle执行计 ...