url参数中带有中文时出现字符乱码

url中不支持中文传输,在传输之前需要URI编码,在客户端编码后,传输到服务端,需要进行解码,编码和解码的格式需要统一。

浏览器和服务器一般都有默认的编码方式,在传递中文时自动编码和解码。

例如,浏览器的默认编码方式是UTF-8,服务器端的默认编码方式是GB2312,当参数传到服务端时,出现乱码。

在web开发时需要统一编码方式,避免出现中文乱码问题。

客户端可通过js编码,js编码格式只能是utf-8,服务器端可设置默认解码格式。  对于当服务端使用tomcat容器时,需要在Server.xml中添加 URIEncoding="UTF-8”

/apache-tomcat-7.0.61/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />

参考文章:

前端工程师的编码遭遇战   http://ued.taobao.org/blog/2011/08/encode-war/

时间: 2024-10-29 13:31:22

url参数中带有中文时出现字符乱码的相关文章

WP8_UTF8 to GB2312转码 (url网址中带中文字符的处理)

直接使用例如:http://www.abc.php?name=中文符 ,客户端调用,在服务端修改后,会出现乱码, 而windows phone 又不能直接支持gb2312, 经过大量分析和验证,发现 凡事 经过"从汉字转换到16进制"后, 即可成功实现转码,代码如下: string text = "中文符"; string url1 = "http://www.abc.php?name="; string url2 = url1 + Utf8To

URL地址中使用中文作为的参数【转】

原文:http://blog.csdn.net/blueheart20/article/details/43766713 引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生了,该如何解决呢?且听本文详细道来. 1.  问题的引出 在Restful的服务设计中,查询某些信息的时候,一般的URL地址设计为: get /basic/service? keyword=历史 , 之类的URL地址

URL地址中的中文乱码问题的解决

引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生了,该如何解决呢?且听本文详细道来. 1.  问题的引出 在Restful的服务设计中,查询某些信息的时候,一般的URL地址设计为: get /basic/service? keyword=历史 , 之类的URL地址. 但是,在实际的开发和使用中,确是有乱码情况的发生,在后台的读取keyword信息为乱码,无法正确读取. 2. 乱码是如

纯JS设置首页,加入收藏,获取URL参数,解决中文乱码

雪影工作室版权所有,转载请注明[http://blog.csdn.net/lina791211] 1.前言 纯Javascript 设置首页,加入收藏. 2.设置首页 // 设置为主页 function SetHome(obj, vrl) { try { obj.style.behavior = 'url(#default#homepage)'; obj.setHomePage(vrl); } catch (e) { if (window.netscape) { try { netscape.s

在MySQL向表中插入中文时,出现:incorrect string value 错误

在MySQL向表中插入中文时,出现:incorrect string value 错误,是由于字符集不支持中文.解决办法是将字符集改为GBK,或UTF-8.      一.修改数据库的默认字符集        ALTER DATABASE db_name DEFAULT CHARCTER SET character_name [COLLATE... ] 例子:ALTER TABLE db_mysql DEFAULT CHARCTER SET gbk          注释: (COLLATE是字

jsp get方式请求参数中包含中文乱码问题解决

1. 自己接收到参数之后在后台进行转码处理 2: 修改tomcat的配置文件  server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/> 即可 jsp get方式请求参数中包含中文乱码问题解决,布布扣,bubuk

php判断URL参数中是否存在某些项

<?php $old_url = $_SERVER["REQUEST_URI"]; //检查链接中是否存在 ? $check = strpos($old_url, '?'); //如果存在 ? if($check !== false) { //如果 ? 后面没有参数,如 http://www.yitu.org/index.php? if(substr($old_url, $check+1) == '') { //可以直接加上附加参数 $new_url = $old_url; }

在传参时,url参数中包含+、空格、=、%、&amp;、#等特殊符号的处理

url参数中有+.空格.=.%.&.#等特殊符号的问题解决? 解决办法: 将这些字符转化成服务器可以识别的字符,对应关系如下: URL字符转义 +    URL 中+号表示空格                      %2B 空格 URL中的空格可以用+号或者编码           %20 /   分隔目录和子目录                        %2F ?    分隔实际的URL和参数                    %3F %    指定特殊字符           

URL参数中汉字转换为16进制Unicode形式

导入JAR包: import java.net.*; 把汉字转换为16进制Unicode形式: String xw="新闻中心"; String name=URLEncoder.encode(xw,"utf-8"); 把16进制Unicode形式字符串转换为汉字: URLDecoder.decode("%E6%96%B0%E9%97%BB%E4%B8%AD%E5%BF%83","utf-8"); 注意:从A(UTF-8)页面中