`
luccs624061082
  • 浏览: 82372 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux下 url中文参数乱码问题

阅读更多
情况是这样的,这里只有后台,是通过http协议发送url,我这边拦截解析。不过总是出现乱码。开始的时候 改为
nickname = new String(req.getParameter("nickname").getBytes("ISO8859-1"),"utf-8");

如果直接输入中文,出现乱码。
最后看到一篇解决乱码的文章,说是get传出 url中文参数的问题,必须先进过编码,然后接收端进行解码。所以想到了URLDecoder.decode(request.getParameter("nickname"), "utf-8")
我发送url的时候 用URLEncoder.encode(
   "你有勇气回来" ,"UTF-8"); 进行编码 然后用上述的进行解码

相应的测试类
package event.test;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

public class URLDecoderTest {

/**
* @throws UnsupportedEncodingException 
*
* 函数功能说明
* 修改者名字 Administrator
* 修改日期 2013-1-22
* 修改内容
* @参数:  @param args
* @return 
* @throws
*
*/
public static void main(String[] args) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
  //将application/x-www-form-urlencoded字符串
  //转换成普通字符串
  //其中的字符串直接从上图所示窗口复制过来
 
  //将普通字符串转换成
  //application/x-www-form-urlencoded字符串
  String urlStr =URLEncoder.encode(
   "你有勇气回来" ,"UTF-8");
  System.out.println(urlStr);
  System.out.println("---------------------");
  String keyWord =URLDecoder.decode(
   "" +
   "%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5","UTF-8");
  System.out.println(keyWord);
}

}


这样传送到url的中文字符经过编码是以"%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5这样的方式进行出现的。
相应的应该用URLDecoder.decode(request.getParameter("nickname"), "utf-8")
进行解码 但是在本地是好的,能够解码得到中文,但是在linux服务器上得到的还是乱码。
最后又试了nickname = new String(req.getParameter("nickname").getBytes("ISO8859-1"),"utf-8");  其实这里不用utf-8
因为通过ie高级设置中 一般通过utf-8发送。

不过我又试验了一下 代码如下
public static void main(String[] args) throws UnsupportedEncodingException {
String urlStr = URLEncoder.encode("你有勇气回来", "UTF-8");
System.out.println(urlStr);
System.out.println("---------------------");
String keyWord = URLDecoder.decode(""
+ "%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5",
"UTF-8");
System.out.println(keyWord);

System.out.println(new String(
"%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5"
.getBytes("ISO8859-1")));
}
中文“你有勇气回来”经过编码后为%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5
用decode方法正确解码得到所要的中文
但是用new String("%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5".getBytes("ISO8859-1"))得到的还是%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5 根本就没有解码

那相应的在 linux服务器上,进过encode编码的中文 应该有decode进行解码,不过却没有用到 而是用的

System.out.println(new String(
"%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5"
.getBytes("ISO8859-1"))

我想通过ie发送的时候 已经在ie内部经过了相应的解码 就已经调用了decode方法,具体的是怎么样 请各位看客指点。
0
0
分享到:
评论
3 楼 plumordy 2016-12-22  
我也遇到这种问题,get中文参数乱码,在本地和一个服务器上都好着呢,结果在另一个服务器上就中文乱码了
2 楼 纳兰萝卜 2014-11-10  
怎么我的编码 然后linux
System.out.println(new String(
"%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5"
.getBytes("ISO8859-1"))

怎么还是%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5 呢 救 命 啊
1 楼 geyaandy 2014-06-28  
我也遇到了同样的问题,用你的方式解决了,但是还是不明白为什么

相关推荐

    支持中文目录wget版本,linux版本

    uri_pathel()函数是通过FILE_CHAR_TEST (*p, mask)这一句来判断该字符是否为特殊字符,而同时它会认为中文也是特殊字符,然后按照转换空格之类的方式对中文进行转义,这样就会造成中文乱码的情况,知道了问题所在,就...

    tomcat值乱码解决

    某些通过URL来传送、值为汉字的参数,在页面中显示的是乱码,但是在本地开发环境是正常显示的。排除的因素当然就是服务器的设置不当了,但具体是那些原因呢?一般我们所装的linux服务器,是中文版的,所以系统环境的...

    mysql乱码解决方案

    linux 系统下mysql中文乱码问题的解决方案 1、在命令行中输入alter database 数据库名 default character set utf8; 设置字符编码方式 2、 set names utf8; 设置显示方式 3 、jdbc中url的路径后跟上?useUnicode=true...

    Web文件管理器KCFinder_3.12(支持中文)

    本资源提供的版本,主要为在Windows系统搭建的PHP环境下使用,因为原版在Windows下部署会有中文乱码的问题。在Linux系统下部署的可直接使用官网提供的原版。 目前没有修改复制、移动功能,因为觉得用处不大,在配置...

    如何解决JQuery ajaxSubmit提交中文乱码

    url: "ajaxsub.aspx?abc=test", type: "post", dataType: "json", success: data }); 分析:JQuery的AJAX提交,会将要提交的数据进行编码,使用encodeURIComponent在js中处理数据。因此,无论是 Firefox或者IE,提交...

    解决文件名解压后乱码的问题 将文件名进行转码的代码

    中文win32下,文件名使用GBK编码 Linux下,文件名使用UTF-8编码 解决文件名解压后乱码的问题,使用将文件名进行转码

    jsp读取数据库,打包多个文件下载

    程序在windows\linux服务器下运行没问题 在客户端简体系统测试没问题; 在客户端繁体系统中如果被打包文件包含中文会有乱码现象(如有解决办法请告诉我,现在做的只能判断繁简客户端决定输出文件名); import 中的 ...

    KODExplorer 芒果云-资源管理器

    - 自动升级(本地记录版本,服务器js调用 参数 url、###version;忽略此版本。cookie。统计用户) ###ver2.0 debug `2014/3/2` ---- ####fix bug:(bug解决和程序优化) - 优化文件打开处理 - 文件&文件夹:含有%...

    SSH 开源图形化 SFTP 客户端 WinSCP 5.17.9.zip

    但WinSCP不支持编码选择,也就是说,你在Windows下使用WinSCP连接一个Linux机器,因为Linux和Windows的默认编码不同,因此是无法访问上面的中文文件或者文件夹的(将看到乱码)。一种解决方法就是在打开winscp时...

    net-core-html-to-image:.NET Core HTML到图像转换器

    它有助于将HTML字符串或URL转换为图像字节。 请参见示例: 安装说明 Nuget包可用( ) Install-Package CoreHtmlToImage dotnet cli: dotnet add package ...将URL转换为图像字节 var converter = new

    爱窝房产系统OurHouse 5.3

    ● 修复等宽截取字符乱码问题;● 修复添加自定义字段时,字段扩展控件不能选择问题;● 修复地图: ->选择地图标点时地图可搜索; ->地图坐标选择,如果为空值,则默认系统预设值; ->地图坐标选择,在https下...

    PHP入门到精通

    8.7对URL传递的参数进行编码解码 8.8PHP与Web表单的综合应用 PHP与JavaScript交互(教学录像:1小时11分36秒) 9.1了解JavaScript 9.2JavaScript语言基础 9.3自定义函数 9.4JavaScript流程控制语句 9.5JavaScript...

    PHP入门到精通02

    8.7对URL传递的参数进行编码解码 8.8PHP与Web表单的综合应用 PHP与JavaScript交互(教学录像:1小时11分36秒) 9.1了解JavaScript 9.2JavaScript语言基础 9.3自定义函数 9.4JavaScript流程控制语句 9.5JavaScript...

    Tomcat源码研究

    4 GET方式URL乱码问题解决  打开 tomcat/conf/server.xml 查找下面这部分,在最后增加一段代码就可以了。 ...

    PHP开发实战1200例源码

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则...

    AKCMS轻量级CMS系统源码 v5.3.7

    2 修正了某些情况下,涉及接口的数据出现乱码的BUG 3 放宽安全检测功能对包含ID的参数的校验规则,包含字母也视为正常 4 修正了PHP5.3+中开启AKCMS的调试模式后提示未来会删除不建议使用的警告信息的问题 5 修正...

    易语言程序免安装版下载

    绑定参数()”命令不支持汉字/UTF-8。 14. 修改BUG:VCL相关支持库部分组件在修改个别属性或调用个别方法后不可见,并改进了Delphi版本的支持库SDK。 15. 修改BUG:高级表格在列类型为数值型时,添加新行且省略标题...

    PHP程序开发范例宝典III

    让你短时间内由一名菜鸟到高手绝对没问题! 由于权限有限,分3部份下载 PHP程序开发范例宝典 内容提要 《PHP程序开发范例宝典》全面介绍了应用PHP进行网站开发的各种技术和技巧。《PHP程序开发范例宝典》分为20章...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

Global site tag (gtag.js) - Google Analytics