`
luccs624061082
  • 浏览: 84511 次
  • 性别: 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  
我也遇到了同样的问题,用你的方式解决了,但是还是不明白为什么

相关推荐

    如何解决Tomcat下中文乱码问题?

    但在某些情况下,如果服务器或中间代理不支持UTF-8,可能需要手动将URL参数解码为正确的字符集。可以使用`java.net.URLDecoder`类进行解码,例如: ```java String param = URLDecoder.decode(request.getParameter...

    Java开发中文乱码问题解决

    在Java开发过程中,中文乱码问题是一个常见的困扰,尤其是在处理文本输入输出时。本文将深入探讨这个问题,并提供解决策略。 首先,我们需要理解字符编码的基本概念。字符编码是将字符(如汉字)转换为数字的过程,...

    Json操作及中文乱码解决方案

    总之,处理JSON操作中的中文乱码问题,关键在于确保数据的编码和解码过程中使用了UTF-8。在前端,jQuery的`$.getJSON`已经做了很好的处理,而在后端,如Java中,Gson库也可以有效地管理中文字符。对于其他编程语言和...

    java解决中文乱码问题

    有些情况下,使用 ISO-8859-1 编码可以解决中文乱码问题。例如: `String s2 = new String(s1.getBytes("ISO-8859-1"), "GBK");` 3. 使用 Tomcat 的 CharacterEncodingFilter Tomcat 5.5 中文乱码的问题可以使用 ...

    Jdbc连接oracle远程数据库中文乱码解决

    综上所述,解决JDBC连接Oracle远程数据库时的中文乱码问题,需要从多个层面进行检查和配置,包括应用程序的配置文件、JDBC连接参数、数据库服务器设置以及开发环境等。通过细心排查和合理配置,可以有效地避免这类...

    javaScript encodeURI中文乱码

    ### JavaScript encodeURI中文乱码问题解析与解决方案 在Web开发中,处理中文字符或其它非ASCII字符时,经常遇到的问题之一就是编码问题,特别是在URL处理过程中。JavaScript中的`encodeURI()`函数是用于对URL进行...

    mysql中文乱码问题

    综上所述,解决MySQL中文乱码问题并非一蹴而就,而是需要从多个角度出发,综合考虑系统配置、数据库设置、连接参数及操作命令等多个层面,才能从根本上消除乱码现象,实现中文数据的准确处理与展示。

    confluence---乱码问题.docx

    **问题描述**:在Confluence中预览附件时出现中文乱码。 **解决方案**: 1. **安装中文字体**:同PDF导出乱码一样,附件预览乱码的问题也往往是因为服务器未安装合适的中文字体所致。可以参考上述PDF导出乱码中的...

    完美解决PHP中文乱码问题

    ### 完美解决PHP中文乱码问题:深入解析与实用指南 #### 一、理解PHP中文乱码问题 在PHP编程中,中文乱码问题是开发者经常遇到的挑战,尤其是在处理多语言网站或应用时。这一问题主要源于字符集编码不一致,即数据...

    tomcat显示出现中文乱码问题.docx

    在使用Apache Tomcat服务器的过程中,有时会遇到中文乱码的问题,这主要表现为在日志输出、控制台打印或者Web应用中的请求参数、响应内容显示不正常,出现问号或者其他非中文字符。这个问题通常是由于字符编码设置不...

    fckeditor(java版-解决中文附件名称乱码问题)

    通过以上知识点的深入理解和应用,可以有效地解决“fckeditor(java版-解决中文附件名称乱码问题)”这个问题,确保用户能够正常上传并保存带有中文名称的附件,从而提高产品在中文环境下的可用性和用户体验。

    MySQL中文乱码问题解决方案

    ### MySQL中文乱码问题解决方案 在使用MySQL的过程中,中文乱码问题是常见的问题之一,尤其是在数据库初始设置不当时,更容易出现此类问题。本文将详细介绍如何彻底解决MySQL中的中文乱码问题。 #### 一、理解中文...

    jfreechart乱码(linux下)

    在Linux环境下,JFreeChart库可能会遇到乱码问题,这主要涉及到字符编码的处理。JFreeChart是一个强大的Java图表库,用于生成高质量的2D图形,如饼图、柱状图、线图等。然而,当在Linux系统上运行含有中文或其他非...

    Ireport中文不显示以及乱码十几种解决方案

    在使用IReport设计报表时,有时会遇到中文不显示或者出现乱码的问题,这通常是由于字体设置、编码格式不匹配或系统环境配置不当等因素引起的。本文将详细解析这些问题的成因,并提供十几种可能的解决方案,帮助你...

    Java中文乱码浅析及解决方案

    Java 中文乱码问题是一个常见的编程困扰,尤其对于处理中文字符的Java程序而言。这个问题通常源于字符编码的不一致,即不同环节采用的字符编码标准不统一。本文将深入探讨这一问题,并提供相应的解决方案。 首先,...

    【文件下载】及解决文件名中文乱码问题

    本文将深入探讨“文件下载”以及如何解决文件名中文乱码问题,这在处理多语言环境下的数据交流时显得尤为重要。 首先,我们要理解文件下载的基本原理。在Web环境中,文件下载通常涉及HTTP协议的GET请求。服务器接收...

    JSP中文乱码问题

    ### JSP中文乱码问题解析 #### 一、引言 在进行Web开发时,特别是使用Java Server Pages(JSP)技术,经常会遇到中文显示乱码的问题。这不仅影响用户体验,也增加了开发与调试的复杂度。本文将针对常见的JSP中文...

    java中文乱码字符集解决大全.pdf

    Java中文乱码问题详解 Java程序在处理中文字符时可能会遇到乱码问题,这主要源于计算机历史上的编码标准差异和Java自身的编码机制。本文将详细分析这个问题的来源、Java编码转换的过程以及解决策略。 1. 中文问题...

    中文乱码问题

    ### 中文乱码问题 #### 一、问题概述 在使用JBoss服务器部署Web应用程序时,经常遇到的一个问题是中文字符显示为乱码。这不仅影响用户体验,还可能导致数据解析错误,进而影响系统的正常运行。因此,理解并解决...

Global site tag (gtag.js) - Google Analytics