`

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()方法结合起来加解密这种方式来解决。如:

页面中:

 

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

 

服务端获取:

 

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版本就有。

分享到:
评论

相关推荐

    RabbitMq+springboot

    在SpringBoot集成中,我们可以设置消息的超时时间以及重试策略,当消息没有在预设时间内得到确认,服务器会自动重新发送消息,直到消费者确认接收或者达到最大重试次数。 最后,我们提到了RabbitMQ集群。通过创建...

    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....

    java.security.InvalidKeyException:illegal Key Size

    在Java编程环境中,"java.security.InvalidKeyException: illegal Key Size" 是一个常见的错误,通常发生在加密或解密操作中。这个错误表示你试图使用的密钥长度超过了Java默认的安全限制。在给定的上下文中,这个...

    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

    java异常处理

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

    JAVA常见异常解析,面试用

    - **java.io.EOFException**:在输入流到达文件结尾时,尝试读取更多数据时抛出。 - **java.io.FileNotFoundException**:打开或创建指定的文件失败时抛出。 - **java.lang.NumberFormatException**:尝试将字符串...

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

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

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

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

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

    在批处理编程中,`EXIT` 和 `GOTO :EOF` 是两个经常被用来控制流程的命令,它们各自有特定的用途和效果。理解这两者的区别对于编写有效的批处理脚本至关重要。 首先,我们来看 `EXIT` 命令。在DOS或Windows的批处理...

    Java的异常类

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

    java异常解决方案.docx

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

    javax.mail.AuthenticationFailedException异常

    javax.mail.AuthenticationFailedException异常处理。

    Java异常大全

    - **`java.io.EOFException`**:当读取文件或流时达到文件末尾但数据还未完全读取完成时抛出。 - **`java.io.FileNotFoundException`**:当尝试打开不存在的文件时抛出。 - **`java.lang.NumberFormatException`**:...

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

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

    java 出现Zipexception 异常的解决办法

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

    Java常见异常

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

    EOF.rar_EOF matlab_EOF.M_EOF分析_eof_matlab求距平

    EOF(Empirical Orthogonal Functions,经验正交函数)是一种数据降维和模式识别的方法,常用于气候学、海洋学和地球物理学等领域,用于分析多维时间序列数据的内在结构。在MATLAB环境中,我们可以利用EOF分析来提取...

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

    4. 委托授权模式:通过协议银行进行资金管理,确保交易安全,但需付出时间成本,且稳定性不足。 从企业角度分类,主要有第三方担保制度和信用评级制度: 1. 第三方担保制度:如支付宝、安付通等,为交易提供安全...

    EOF.zip_EOF Python_EOF方法_eof_eof分解python_python实现eof

    EOF,全称End of File(文件结束符),在编程领域中通常用来表示文件或数据流的末尾。但在本场景中,"EOF"是“经验正交函数”(Empirical Orthogonal Functions)的缩写,这是一个在气象学、海洋学和其他地球科学领域...

Global site tag (gtag.js) - Google Analytics