`

javaweb开发乱码问题整理

    博客分类:
  • J2EE
阅读更多
j2ee方面的开发总会遇到各种各样的乱码问题,总想抽空整理一下,一直没时间。
情景一:
如果采用spring框架,之中出现乱码。则可以通过下面这种在web.xml中配置的方式。
CharacterEncodingFilter中只有两句代码,是给characterEncoding设置编码格式:
request.setCharacterEncoding(this.encoding);
if (this.forceEncoding && responseSetCharacterEncodingAvailable) {
response.setCharacterEncoding(this.encoding);
}
<filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        </filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>GBK</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
这样的方式就要求这个filter放在所有其它filter之前进行。
filter的顺序很关键


场景二:
try {
String content=URLEncoder.encode("txt=您的朋友caituopost4发送为您推荐以上资讯","utf-8");
String pushUrl="http://www.test.com:8080/tgweb/push.jsp?tophone=1555886543&myphone=10658698&txt="+content+"&url=http://localhost:8080/wsap/tentDetail.action?modelid=274^tentId=1572";
System.out.print("转码后:"+pushUrl);
URL myUrl;
myUrl = new URL(pushUrl);
HttpURLConnection conn = (HttpURLConnection)myUrl.openConnection();
conn.setDoOutput(true);
conn.connect();
conn.getInputStream();
System.out.print("无错了!");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
场景三:get传递中文
避免乱码的方式:

页面上:
<a href="<%=basePath %>/EncodingServlet?address=<%=URLEncoder.encode("中国人","UTF-8") %>">是否乱码2</a>


servlet里面:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
      String address=new String(request.getParameter("address").getBytes("ISO-8859-1"),"utf-8");
      System.out.println("address:"+address);
}

奇怪的是,如果页面上用下列方式,则无论如何都是乱码了:
<a href="javascript:location.href='<%=basePath %>/EncodingFilter?address=<%=URLEncoder.encode("中国人","UTF-8") %>'">是否乱码</a>
场景四:下载文件名乱码
/**
* 将文件名中的汉字转为UTF8编码的串,以便下载时能正确显示另存的文件名.
* @param  原文件名
* @return 重新编码后的文件名
*/
public static String toUtf8String(String s) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= 0 && c <= 255) {
sb.append(c);
} else {
byte[] b;
try {
b = Character.toString(c).getBytes("utf-8");
} catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0)
k += 256;
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
场景五:tomcat编码格式修改
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
   URIEncoding="UTF-8"/>

场景五:ajax调用时传递中文需要解码两次。
String q="";
try {
q = URLDecoder.decode(URLDecoder.decode(paramParser.getString("q"), "utf-8"), "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
(未完待续)
0
1
分享到:
评论

相关推荐

    JavaWeb开发中文乱码问题解决方案

    在JavaWeb开发中,中文乱码问题是一个普遍且棘手的问题,主要出现在数据的输入、处理和输出过程中。中文字符由于其特殊的编码方式(如GBK、UTF-8等),在不同编码格式之间转换时容易出现乱码。为了解决这个问题,...

    JavaWeb开发技术-解决中文输出乱码问题.pptx

    JavaWeb开发技术-解决中文输出乱码问题 JavaWeb开发技术是指使用Java语言开发Web应用程序的技术,涵盖了从基本的Servlet和JSP到高级的框架和架构模式的各种技术。其中,解决中文输出乱码问题是JavaWeb开发中一个...

    JavaWeb开发技术-解决中文输出乱码问题.docx

    总结来说,解决JavaWeb开发中的中文乱码问题,关键在于正确地设置字符编码。使用`HttpServletResponse`的`setCharacterEncoding`和`setContentType`方法可以确保数据在传输过程中的编码与接收端的解码保持一致,从而...

    javaweb开发必备源码整理

    总的来说,"javaweb开发必备源码整理"是一个宝贵的教育资源,可以帮助JavaWeb开发者加深对技术的理解,提高编程技能,并为解决实际问题提供参考。通过仔细研究和实践,开发者可以更好地掌握JavaWeb开发的核心技术,...

    解决JavaWeb开发中Jsp存储读取MySQL数据中文乱码的问题.pdf

    解决JavaWeb开发中Jsp存储读取MySQL数据中文乱码的问题.pdf

    关于处理Javaweb中中文乱码的问题文.pdf

    在 JavaWeb 技术开发中,中文乱码问题是由于 Java 系统的输入、输出和操作系统的默认编码字符集不一致导致的。 Java 系统内部使用 Unicode 来表示字符,但是在实际应用中,由于应用程序的运行环境不同,和各个本地...

    javaweb乱码

    ### 解决Javaweb乱码问题完整方案 在Javaweb开发过程中,字符编码问题经常困扰着开发者,特别是中文等多字节字符的处理。本文将详细讲解如何全面解决Javaweb中的乱码问题,确保网页内容正确显示。 #### 一、配置...

    JavaWeb开发中的中文乱码问题分析及解决方案.docx

    ### JavaWeb开发中的中文乱码问题分析及解决方案 #### 摘要 在JavaWeb开发过程中,中文乱码问题是常见的技术挑战之一。该问题源于不同组件间的编码方式不一致,尤其是在涉及用户输入、数据库交互以及页面展示等环节...

    JavaWeb乱码问题终极解决方案.docx

    JavaWeb 乱码问题终极解决方案 下面是从给定的文件中生成的相关知识点: 一、确认乱码发生的位置 在解决 JavaWeb 乱码问题时,首先要确认乱码的地方。...在实际开发中,需要注意编码问题,避免出现乱码问题。

    JavaWeb中字节乱码filter解决办法

    JavaWeb中字节乱码filter解决办法,其中包括tomcat各个版本进行字符设置.

    Tomcat与JavaWeb开发技术详解源码

    Tomcat与JavaWeb开发技术详解书本的源代码。

    JavaWeb开发典型模块大全完整源码

    JavaWeb开发是构建基于互联网应用程序的关键技术,它涵盖了服务器端编程、数据库交互、网页动态内容生成等多个方面。这个"JavaWeb开发典型模块大全完整源码"提供了全面的学习资源,可以帮助开发者深入理解JavaWeb的...

    JavaWeb开发实战源码

    JavaWeb开发实战源码是学习和理解Web应用程序开发的一个重要资源。这个压缩包可能包含了从基础到高级的各种JavaWeb项目实例,涵盖了从搭建环境、创建动态网页、处理HTTP请求到数据库交互等一系列步骤。通过深入研究...

    JavaWeb开发文档集合

    在IT行业中,JavaWeb开发是...学习和理解这些技术,将有助于提升JavaWeb开发的专业技能和解决问题的能力。通过深入阅读和实践,开发者可以逐步构建起完整的JavaWeb开发知识体系,为开发高质量的Web应用打下坚实基础。

    JavaWeb开发权限问题

    在JavaWeb开发中,权限问题是一个至关重要的环节,它涉及到系统的安全性、用户访问控制以及数据保护。本篇文章将深入探讨JavaWeb开发中的权限管理,帮助开发者理解和实施有效的权限设置。 一、角色与权限模型 在...

    Javaweb开发技术详解

    JavaWeb开发技术是现代互联网应用开发的重要组成部分,汪大乐所著的《Javaweb开发技术详解》一书深入浅出地介绍了这一领域的核心概念和技术。JavaWeb开发主要涉及Servlet、JSP、JSTL、过滤器、监听器、MVC设计模式...

    JavaWeb开发实战经典(基础篇)源码

    14. **Web安全**:在开发JavaWeb应用时,还需考虑安全性问题,如防止SQL注入、XSS攻击、CSRF攻击等。 通过学习《JavaWeb开发实战经典(基础篇)》的源码,你可以逐步掌握这些关键知识点,并通过实际操作加深理解,...

    解决JavaWeb开发中Jsp存储读取MySQL数据中文乱码的问题[整理].pdf

    解决JavaWeb开发中Jsp存储读取MySQL数据中文乱码的问题[整理].pdf

    Tomcat与JavaWeb开发技术详解-随书源码

    《Tomcat与JavaWeb开发技术详解》一书的随书源码包含了大量的示例和练习,旨在帮助读者深入理解如何在实际开发环境中运用Tomcat服务器和JavaWeb技术。以下是对这些关键技术点的详细阐述: **Tomcat服务器** Tomcat...

    javaweb乱码问题分析与解决.md

    ### JavaWeb乱码问题分析与解决 #### 一、引言 在JavaWeb开发中,乱码问题是开发者经常遇到的问题之一。它不仅会影响用户体验,还会对数据的正确性造成潜在威胁。本文将针对请求乱码及响应乱码两种情况进行深入剖析...

Global site tag (gtag.js) - Google Analytics