您的位置:一分快三全天精准计划 > 1分快3全天计划官方网站-编程 > 服务器端显示为 url 乱码

服务器端显示为 url 乱码

2020-01-14 20:05

问题: 在 Google Map 上用 Ajax 以 get 方式向服务器传递数据时,服务器端显示为 url 乱码, Zend Framework 向 MySQL 存储数据为乱码,但是提取出来又是正常中文字体, MySQL 中输入中文,显示在 PHP 网页上为乱码。 解决方式: 1. Ajax 的 url 编码需要转换,我使用的如下函数: public function js_unescape { $ret = ''; $len = strlen; for ($i = 0; $i < $len; $i++) { if ($str[$i] == '%' && $str[$i+1] == 'u') { $val = hexdec); if $ret .= chr; else if $ret .= chr.chr; else $ret .= chr.chr).chr; $i += 5; } else if { $ret .= urldecode; $i += 2; } else $ret .= $str[$i]; } return $ret; } 调用示例: $row->name =XmlController::js_unescape->getParam; 2. 把所有涉及编码的地方都设为 utf8 或 utf-8 MySQL 包括数据库,数据表,字段,数据库连接。 Zend Framework 包括数据连接,视图和html输出。 Ajax 包括 Javascript ,XML 的文件编码和字体编码。 Zend Framework数据连接编码设置: 参考 Zend_Db_Table::setDefaultAdapter; Zend_Registry::set('dbAdapter', $dbAdapter); $dbAdapter->query; 如果是 PHP 直接连接则这样设置: // Select all the rows in the markers table $query = "SELECT * FROM markers WHERE 1"; //select 数据库之后加多这一句 mysql_query; mysql_query("SET CHARACTER SET utf8"); mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");

本文由一分快三全天精准计划发布于1分快3全天计划官方网站-编程,转载请注明出处:服务器端显示为 url 乱码

关键词: