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

java.io.CharConversionException:EOF异常

阅读更多
最近在项目开发中遇到java.io.CharConversionException:EOF 异常,异常原因是:character  decoding failed. Parameter skipped. 即对所传参数时字符编码解析失败。
       有时引起的原因可能是:httpServletRequest对象中的键值对中包含:“%”。
       java中对字符编码和解码提供了两个类:URLEncoder和URLDecoder,处理这些二进制,使用其加密的结果类似“%CC%DE%%”这样的字符串,因此java.io.CharConversionException:EOF异常的出现就和java的这个机制有关!
       因此,最好避免使用含“%”或“%%”字符传入request对象中,解决这种异常可以用URLEncoder 类的encode()方法和URLDecoder类的decode()方法结合起来加解密这种方式来解决。如:
页面中:

Js代码 
var url = "modifyDepartment.action?name=" +cname; 
url=encodeURI(url);  


服务端获取:

Java代码 
String name=request.getParameter("name"); 
name = java.net.URLDecoder.decode(name,"UTF-8"); 

     javascript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。这几种编码所起的作用各不相同。

     escape() 方法: 

     采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。

     不会被此方法编码的字符: @ * / +

     encodeURI() 方法:

     把URI字符串采用UTF-8编码格式转化成escape格式的字符串。

     不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '

     encodeURIComponent() 方法:

     把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。

     不会被此方法编码的字符:! * ( ) '

     因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。

     另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。
分享到:
评论
1 楼 lovexz365 2012-05-18  
学习了,刚刚遇到这个问题

相关推荐

    java.security.InvalidKeyException:illegal Key Size

    在JDK6版本中,Java默认仅支持40位和128位的密钥长度,对于更高安全性的需求,如256位的AES(高级加密标准)密钥,就会抛出此异常。这是出于美国出口法规的限制,旨在控制加密技术的出口。然而,为了使用更长的密钥...

    jetty-io-9.4.43.v20210629-API文档-中英对照版.zip

    赠送jar包:jetty-io-9.4.43.v20210629.jar; 赠送原API文档:jetty-io-9.4.43.v20210629-javadoc.jar; 赠送源代码:jetty-io-9.4.43.v20210629-sources.jar; 赠送Maven依赖信息文件:jetty-io-9.4.43.v20210629....

    mysql 异常com.mysql.jdbc.CommunicationsException

    本次异常的具体描述为:“Communications link failure due to underlying exception: **BEGINNESTED EXCEPTION** java.io.EOFException STACK TRACE: java.io.EOFException at com.mysql.jdbc.MysqlIO.readFully...

    PdfUtils.java

    解决Could not load font file: C:\Windows\FONTS\mstmc.ttf 对应问题贴https://blog.csdn.net/guozhangjie1992/article/details/103679640

    RabbitMq+springboot

    如果消费者在处理消息时发生异常,消息不会丢失,而是会重新放回队列,等待下次消费。这对于保证数据的一致性和可靠性至关重要。 另外,RabbitMQ还支持消息重发机制。在SpringBoot集成中,我们可以设置消息的超时...

    Java图片处理ImageIO.read()问题

    在Java编程中,图片处理...总的来说,理解和使用`ImageIO.read()`需要对Java I/O机制有一定了解,并能处理可能出现的各种异常情况。通过学习源码,开发者可以更深入地理解其工作原理,从而更好地应对实际开发中的挑战。

    java异常处理

    ### Java异常处理详解 #### 一、异常的基本概念 异常是指程序在运行过程中遇到的一些非预期情况,这些情况可能是由于程序设计不合理、输入数据错误或者是系统资源问题导致的。Java中的异常处理机制是为了让程序...

    JAVA常见异常解析,面试用

    Java异常处理是编程中至关重要的一个环节,它帮助开发者识别并修复程序运行时可能出现的问题。在面试中,对Java异常的熟悉程度往往被视为衡量开发者经验和技术水平的重要标准。以下是一些Java常见异常的详细解析: ...

    EXIT 与 GOTO :EOF 在批处理中的区别

    配合图片资源,如 `Command_EXIT.png`、`Command_GOTO_EOF.png` 等,这些图可能展示了批处理命令在实际环境中的使用示例,帮助读者更好地理解和应用这两个命令。在实际编程中,结合这些视觉辅助可以更直观地解释...

    java异常解决方案.docx

    * java.io.EOFException: Tomcat 启动时报错 + 解决方案:检查 Tomcat 的配置文件是否正确,是否存在语法错误或格式不正确的问题。 * Tomcat 内存溢出 + 解决方案:检查 Tomcat 的 JVM 参数设置,是否存在内存溢出...

    Java的异常类

    - **`java.io.EOFException`**:文件已结束异常。 - **`java.io.FileNotFoundException`**:文件未找到异常。 - **`java.lang.NumberFormatException`**:字符串转换为数字异常。 - **`java.sql.SQLException`**...

    Flowable-BPMN操作流程部署启动源码

    在提供的资源"flowablestudy"中,可能包含了实现以上功能的Java源代码示例,这将帮助读者深入理解Flowable的工作原理和使用方法。通过阅读和实践这些源码,可以更有效地掌握Flowable的流程部署和启动操作,同时也...

    AndroidApk混淆编译时,报告java.io.IOException...错误解决办法

    主要介绍了 AndroidApk混淆编译时,报告Error:Execution failed for task ‘:gviews:transformClassesAndResourcesWithProguardForRelease’.错误解决办法的相关资料,需要的朋友可以参考下

    java 出现Zipexception 异常的解决办法

    Java中的`ZipException`异常通常是由于尝试访问或处理ZIP文件时遇到问题而引发的。当程序尝试打开一个ZIP文件,但文件格式不正确、文件损坏、文件不存在或者没有足够的权限来访问时,就会抛出`java.util.zip....

    EurekaLog_7.5.0.0_Enterprise

    EurekaLog 7.5 (18-August-2016) 1)..Important: Installation layout was changed. All packages now have version suffix (e.g. EurekaLogCore240.bpl). No files are copied to \bin folder of IDE....

    Java异常大全

    ### Java异常大全 在Java编程过程中,异常处理是不可或缺的一部分,它可以帮助开发者更好地管理程序运行时可能出现的问题。本文将对常见的Java异常进行详细介绍,并提供一些基本的处理策略。 #### 1. `java.lang....

    计算机等级二级考试中delphi函数参考大全.pdf

    62. `eof`和`eoln`函数:分别用于检测文件是否到达末尾和文本文件的行结束状态。 63. `erase`命令:删除指定的外部文件。 64. `exceptaddr`函数:返回引发当前异常的地址。 65. `exclude`函数:从集合中移除指定...

    电子商务交易平台信用体系建设研究整理.pdf

    在电子商务领域,信用体系的建设至关重要,因为它直接影响到交易的安全性和消费者的信任度。网络交易平台信用体系,简单来说,就是电商平台在政府引导下,与各方参与者共同建立的一套包含法规、评价标准、组织形式和...

    java 异常种类总结【转】.docx

    Java 异常种类总结 Java 异常种类总结是指在 Java 编程语言中,各种可能发生的异常类型的总结。这些异常可能会在编程过程中出现,并且可能会导致程序的崩溃或中断。了解这些异常种类可以帮助开发者更好地处理和解决...

    Java常见异常

    9. **IOException while loading persisted sessions: java.io.EOFException** 在加载持久化会话时遇到输入/输出异常,可能是文件损坏或读取过程中断。尝试重新初始化持久化存储或检查磁盘空间。 10. **java.io....

Global site tag (gtag.js) - Google Analytics