`
s_xy
  • 浏览: 20104 次
社区版块
存档分类
最新评论
阅读更多

今天在做导出操作时发现保存excel名称为乱码,经查找发现时jsp页面编码有问题:

jsp导出页面部分代码:

name= user.getName() + "工资单.xls";
 response.setHeader("Content-Disposition", "filename=" + new String(name.getBytes("gbk"),"ISO-8859-1"));

修改为以下代码则正常:

name= user.getName() +  new String(("工资单.xls").getBytes("ISO-8859-1"),"gbk");
 response.setHeader("Content-Disposition", "filename=" + new String(name.getBytes("gbk"),"ISO-8859-1"));

 

new String(str.getBytes(“ISO-8859-1″),”GBK”)的原理:

 

当字符在网络中传递时,不管对于这个字符是怎么编码的,java都认为它是iso8859编码,因此按照iso8859到unicode的转换规则,变成java保存字符的unicode编码,此时如果直接显示该字符时,将出现乱码,因为它本身并不是iso8859的编码,而是GBK方式,对应unicode码自然也不正确,所以这时需要做的是先将这个字符码可逆的转化为原先的编码值即GBK值,(转化方法就是通过getBytes(ISO-8859-1)得到),然后java才将此GBk值的字符,以gbk到unicode的转化规则保存为java默认方式unicode码。


那么我们可以得到一个编码转换的过程
假设:GBK码(“你”)->URLencode后变成->(%3F%2F)->Tomcat自动替你转一次ISO- 8859-1->得到( 23 43 68 23 42 68 每一个符号表示为ISO-8859-1中的一个编码)->接收页面—>再转一次为ISO-8859-1的Byte数组 [23,43,68,23,42,68]—>用GBK再转为可读的文字—>(%3F%2F”—->转为(“你”)

分享到:
评论

相关推荐

    jsp 页面乱码问题

    1. **JSP页面编码**:确保JSP文件本身使用正确的字符编码,通常推荐使用UTF-8,可以通过在JSP文件顶部添加`;charset=UTF-8" %>`来设定。 2. **HTTP响应头**:服务器应该在HTTP响应头中设置正确的Content-Type,比如...

    有关JSP页面乱码问题的解决

    综上所述,解决JSP页面中的乱码问题需要从多个角度入手,包括但不限于正确设置页面编码、统一前后端编码、合理处理URL中的中文参数以及确保数据库操作的编码一致性。通过这些方法,可以有效地避免乱码问题的发生,...

    解决jsp页面乱码

    解决jsp页面乱码,页面信息配置,tomcat配置以及各种信息配置

    jsp页面提交乱码问题

    2. **设置JSP页面编码**: ```jsp request.setCharacterEncoding("gb2312"); %> ``` 此代码块用于设置JSP页面处理请求时的字符编码。 3. **处理`GET`请求的乱码问题**: ```jsp String username = ...

    5种JSP页面显示为乱码的解决方法

    ### 五种解决JSP页面乱码问题的方法 在Web开发过程中,经常遇到的一个问题是页面显示乱码。尤其是在使用Java Server Pages(JSP)技术时,由于编码设置不当导致中文等非ASCII字符不能正常显示的问题尤为突出。本文...

    解决JSP中文乱码问题

    解决 JSP 中文乱码问题 解决 JSP 中文乱码问题是一个很常见...解决 JSP 中文乱码问题需要从多方面入手,包括在 JSP 文件中指定编码方式,在 Java 文件中指定编码方式,在页面中指定编码方式,并确保编码方式的一致性。

    如何解决JSP页面显示乱码问题

    ### 如何解决JSP页面显示乱码问题 在JSP(Java Server Pages)开发中,中文乱码问题一直是开发者常见的挑战之一。这类问题通常源于不同的编码格式不一致导致的字符集冲突。本文将针对JSP页面显示乱码、表单提交中文...

    解决jsp页面中文乱码问题

    1. **JSP页面编码设置** JSP页面默认的编码可能与我们的实际需求不符,特别是在处理中文字符时。可以通过以下方式设置JSP页面的编码: - 在JSP文件顶部添加`;charset=UTF-8" language="java" %>`指令,指定页面的...

    JSP中文乱码问题解决办法

    JSP 中文乱码问题解决办法 JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示...解决 JSP 中文乱码问题需要从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交表单等。

    jsp编码 jsp乱码

    jsp编码乱码问题是jsp开发中常见的问题之一,该问题可能会导致jsp页面显示乱码,影响用户体验。因此,了解jsp编码的原理和解决乱码问题的方法是非常重要的。 jsp编码的原理 jsp编码是指jsp页面中的编码方式,jsp...

    jsp页面文档编码问题

    在Java Web开发中,编码问题始终是一个常见的挑战,特别是涉及到JSP页面时。JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,以实现服务器端的数据处理和逻辑控制。然而,由于...

    jsp页面传值中文乱码问题处理.docx

    jsp页面传值中文乱码问题处理 在 JSP 页面中传值时,中文字符可能会出现乱码问题,这是由于字符编码不一致所引起的。下面将详细讲解 JSP 中文乱码种类和解决方案。 JSP 文件中文内容显示乱码 在 JSP 文件中,如果...

    jsp页面乱码处理

    #### 解决方案一:设置JSP页面编码 首先,确保JSP页面的`contentType`和`pageEncoding`属性正确设置为统一的编码格式,通常是UTF-8,这是最常用的多语言支持编码。 ```jsp ;charset=UTF-8" %> ``` #### 解决方案...

    JSP页面中文乱码几个解决办法

    总结来说,解决JSP页面中文乱码问题的关键在于保持字符编码的一致性,从编辑器保存文件的编码、JSP页面的编码声明、Servlet的响应编码、POST请求的参数编码,到服务器处理GET请求的编码,都需要进行适配和统一。...

    jsp中文乱码问题jsp中文乱码问题详解

    jsp中文乱码问题的出现是由于编码格式不一致所导致的,可以通过确保jsp文件的存储格式、解码格式和控制浏览器的解码方式一致来解决乱码问题。同时,在使用Post和Get方式提交表单时,需要指定提交的编码格式,以避免...

    jsp中文乱码问题解决

    jsp中文乱码问题产生的原因是由于jsp页面的编码方式和浏览器的编码方式不一致所致。jsp页面的编码方式默认为ISO-8859-1,而浏览器的编码方式默认为GBK或UTF-8。这样就会导致jsp页面中的中文字符乱码。 解决jsp中文...

    jsp页面乱码最简单的解决办法

    设置JSP页面编码 除了修改服务器配置外,还需要在JSP页面头部添加`; charset=UTF-8" pageEncoding="UTF-8"%>`,确保页面内容和编码一致。 ```jsp ; charset=UTF-8" pageEncoding="UTF-8"%> 示例页面 ... ...

    对jsp两个页面间传递变量出现变量乱码的解决

    本文将详细介绍如何解决JSP页面间传递变量时出现的乱码问题。 首先,我们来看方案(一),这是通过在JSP脚本中设置字符编码来解决局部乱码的方法。在JSP页面中插入以下代码: ```jsp ("GBK"); %> ("GBK"); %> ``` ...

Global site tag (gtag.js) - Google Analytics