`
mllongze
  • 浏览: 82703 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ajax提交特殊字符编码转换问题.ishexdigit问题-解决方案

阅读更多
今天测试密码输入了一串特殊字符后后台出来如下错误:

2010-9-3 11:44:56 org.apache.tomcat.util.http.Parameters processParameters
警告: Parameters: Character decoding failed. Parameter skipped.
java.io.CharConversionException: EOF
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:82)

java.io.CharConversionException: ishexdigit
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:82)

引起的原因:httpServletRequst对象中的键值对中包含: "%"



解决办法在ajax提交前先进行编码,在java后端在进行解码

ajax编码方法:value = encodeURIComponent(encodeURIComponent(str)).replace(/%20/g, "+");

java解码方法:

/**
  * 转换ajax提交的表单编码 URLDecoder
  * @param str
  * @return
  */
 public static String URLDecoder(String str){
  if(str == null || str.isEmpty()){
   return str;
  }
  try{
   str = URLDecoder.decode(str, "UTF-8");
  }catch(Exception e){
   log.error("URLDecoder.decode转换前台传过来的汉字编码格式时候发生异常!", e);
  }
  return str;
 }

 

一个测试输出的转换前和转换后结果:

request psw==========%40!%23%24%25%5E%26*()-%3D
decoder psw==========@!#$%^&*()-=

分享到:
评论

相关推荐

    jquery-upload.min.js和jquery-1.11.0.min.js

    jquery ajax上传组件JS. jquery-upload.min.js和jquery-1.11.0.min.js。 上传小文件图片,文件等非常合适。 详情可参考:http://blog.csdn.net/programmer_sir/article/details/29570935

    jquery-1.8.3.js 、jquery-1.8.3.min.js 【官方jquery包 js】

    至于Ajax,`$.ajax()`函数是其核心,支持GET、POST等多种请求方式,同时提供异步处理和数据格式化等功能。 在实际项目中,jQuery 1.8.3能够帮助开发者快速实现页面交互,提高开发效率。例如,通过使用AJAX,可以...

    jquery-1.11.1.js 、jquery-1.11.1.min.js 【官方jquery包 js】

    jQuery 1.11.1是在2014年发布的一个稳定版本,它修复了之前版本的一些已知问题,增强了兼容性和性能。此版本在保持与早期版本的向后兼容性的同时,也引入了一些新的特性和改进。 3. **DOM操作** - `$(selector)`...

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    在Java世界里,`json-lib-2.1.jar` 是一个用于处理JSON的库,它提供了一系列的方法来将Java对象转换为JSON格式,以及将JSON字符串反序列化回Java对象。这个库支持多种Java类型,包括基本类型、集合、Map、自定义Java...

    jquery.unobtrusive-ajax.min.js

    Ajax.BeginForm 提交,需要引用此文件才会执行OnSuccess

    jquery-2.0.3.js和jquery-2.0.3.min.js

    5. **Ajax交互**:`.ajax()`, `.get()`, `.post()`等方法让异步数据获取和提交变得轻松,同时支持JSONP和跨域请求,极大地扩展了Web应用的能力。 6. **链式调用**:jQuery的链式调用特性使得代码更紧凑,可读性更强...

    ASP.net AJAX进度条实例(批量插入大量数据)

    该示例使用简单,完成插入指定数量的数据,ajax写入数据库,并显示精准进度,实时返回运行过程。对于大量插入数据库的操作,可以做到无刷,不超时; 目录结构: Css/style.css -------------进度条样式 Js/...

    ajax-struts2需要的3个包

    以下是对"ajax-struts2需要的3个包"的详细解释: 1. **json.js**: 这是一个JavaScript库,用于处理JSON(JavaScript Object Notation)数据格式。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...

    url传值异常java.io.CharConversionException: isHexDigit

    这可能导致在服务器端解析时出现问题,尤其是在处理非英文字符时,由于编码不一致,可能会引发“isHexDigit”异常。 为了解决这个问题,我们可以使用`encodeURI`或`encodeURIComponent`函数代替`escape`。这两个...

    Ajax使用POST提交中文乱码问题.docx

    在使用Ajax进行POST提交时,中文字符可能会遇到乱码问题,这是因为数据在传输过程中编码与解码不匹配导致的。Ajax以UTF-8编码发送数据,但服务器端可能使用了不同的字符集(如GB2312)来解析,这就产生了乱码。本文...

    关于applicationx-www-form-urlencoded等字符编码的解释说明

    关于application/x-www-form-urlencoded等字符编码的解释说明 application/x-www-form-urlencoded是HTML表单提交时使用的最常见的编码格式,它将窗体数据编码为名称/值对。这种编码格式是标准的编码格式,广泛应用...

    MLDN+李兴华+Java+Web开发实战经典.pdf--- 002

    里面包含jsp、servlet、struts、ajax等知识点。下载此资源,请同时下载MLDN+李兴华+Java+Web开发实战经典.pdf--- 001,因为我只能上传60m的文件。

    网页字符编码问题总结及解决

    ### 网页字符编码问题总结及解决 在日常的网页开发过程中,经常会遇到字符编码导致的乱码问题。本文将结合实践经验,深入探讨不同情况下乱码产生的原因,并提出相应的解决方案。 #### 一、理解字符编码的基础概念 ...

    Ajax中文乱码问题解决方案

    然而,在处理中文字符时,Ajax请求可能会遇到乱码问题,这主要是由于编码格式不一致或者处理不当导致的。本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**...

    jquery字符编码转换[文].pdf

    解决这个问题的关键在于如何让Ajax请求在发送时明确告知后端其编码方式,并且在正确的时间点进行解码。以下是一些策略: 1. **通过Ajax告诉后端编码**: - 可以在请求头(Header)中添加自定义字段来传递编码信息...

    dynatrace-AJAX-edition-4.2.0.1528.zip

    包含的“dynatrace-AJAX-edition-4.2.0.1528.msi”是Windows Installer文件,用于在Windows操作系统上安装Dynatrace AJAX Edition。安装过程通常包括接受许可协议、选择安装路径、配置初始设置等步骤。安装完成后,...

    jsf1.2 jar包下载

    4. **更好的错误处理和调试**:提供了更丰富的错误信息和日志记录,帮助开发者在遇到问题时能够更快定位和解决。 5. **性能优化**:JSF 1.2对渲染树的处理进行了优化,提高了框架的整体性能,尤其是在大型应用中的...

    Asp中用法JQuery的AJAX提交中文乱码解决方法_.docx

    在Asp中使用JQuery的AJAX提交中文乱码解决方法主要是在客户端使用escape()函数编码中文字符,而在服务器端使用VbsEscape()和VbsUnEscape()函数来编码和解码中文字符。通过这种方法,可以避免中文乱码问题,实现正确...

    AJAX编码问题

    本文将详细探讨AJAX编码问题,并提供几种解决方案。 #### 一、AJAX编码问题概述 AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器...

    ajax提交表单到后台

    这里`serialize()`函数用于将表单数据转换为URL编码的字符串,方便发送到服务器。 ### 二、后端:使用Spring接收并处理数据 1. **添加Spring MVC依赖**:在项目中,确保已经引入了Spring MVC相关的依赖,如`...

Global site tag (gtag.js) - Google Analytics