Servlet 中的中文字符

来自 URL 参数部分的中文字符

Tomcat 默认接收数据的编码是 ISO-8859-1。所以当请求 URL 的参数部分含有中文字符,需要转换字符的编码。

Enumeration<String> paramNames = req.getParameterNames();
while (paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
String paramValue = req.getParameter(paramName);
String paramValueUTF8 = new String(paramValue.getBytes("ISO-8859-1"), "UTF-8");
System.out.println(paramName + ": " + paramValueUTF8);
}

上述的方法的一个不足是:需要对所有的参数部分解码。可以直接在 Tomcat 的 server.xml 中将默认的编码设置为 UTF-8。

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

来自 POST 表单的中文字符

当客户端提交的表单内容包含中文字符时,可以在获取表单内容前,调用 request.setCharacterEncoding 方法来设置字符的编码:

req.setCharacterEncoding("UTF-8");
Enumeration<String> paramNames = req.getParameterNames();
while (paramNames.hasMoreElements()) {
String paramName = (String) paramNames.nextElement();
System.out.println(paramName + ": " + req.getParameter(paramName));
}

响应至客户端的中文字符

当响应至客户端的内容包含中文字符时,可以在获取输出流之前,调用 response.setContentType 方法来设置响应内容的类型及编码。

resp.setContentType("text/plain;charset=utf-8");
resp.getWriter().println("中文字符");

HTTP 首部的中文字符

HTTP 首部只支持 ASCII 编码,可以对首部进行 URL 编码。

resp.setContentType("text/plain;charset=utf-8");
String fileName = URLEncoder.encode("中文名称.txt", "UTF-8");
resp.setHeader("Content-disposition", "attachment;filename=" + fileName);

JSP 中的中文字符

JSP 页面内容的中文字符

当 jsp 页面内容包含中文字符时,可以使用 page 指令来指定字符编码。

<%@ page language="java" contentType="text/html; UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>中文标题</title>
</head>
<body>
中文内容
</body>
</html>

JSP Java 代码中的中文字符

JSP 的本质即 Servlet,所以当 JSP 页面中的 Java 代码包含中文字符时,则可以参考 Servlet 中是如何解决中文字符的。

Servlet & JSP - 中文字符问题的更多相关文章

  1. JSP和Servlet的中文乱码处理

    JSP和Servlet的中文乱码处理 前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下.应该是可以解决日常的乱码问题了.现在作以下总结希望对需要的人有所帮助.我 ...

  2. JSP与Servlet的中文乱码处理

    注:百度来的,改了改... jsp页面的的头要设置好 <%@ page language="java" contentType="text/html; charse ...

  3. jsp中文乱码 Servlet中文乱码 utf-8

    JSP+Servlet项目中,项目统一使用utf-8编码.配置过滤器过滤所以请求并设置utf-8编码,jsp页面也都设置utf-8,但是还有一点很容易忽视的就是tomcat也要设置utf-8,默认情况 ...

  4. JSP | 基础 | 中文字符的传递

    设置传递格式: request.setCharacterEncoding("utf-8"); 中文字符解码: import java.net.URLDecoder; String ...

  5. JSP中文乱码总结

    大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考.首先了解一下Java中文问题的由来: Java的内核和class文 ...

  6. JSP 中文乱码显示处理解决方案

    来源: <http://blog.csdn.net/joyous/article/details/1504274> JSP 中文乱码显示处理解决方案 分类: 所有 Web前端 J2EE20 ...

  7. 如何配置Filter过滤器处理JSP中文乱码

    参考Tomcat服务器目录webapps的examples示例 简单配置步骤:1.在项目web.xml文件添加过滤器标记<filter>和<filter-mapping>:2. ...

  8. Servlet&jsp基础:第五部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. Servlet&jsp基础:第三部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. 深入学习APC

    一.前言 在NT中,有两种类型的APCs:用户模式和内核模式.用户APCs运行在用户模式下目标线程当前上下文中,并且需要从目标线程得到许可来运行.特别是,用户模式的APCs需要目标线程处在alerta ...

  2. Elasticsearch和mysql数据同步(logstash)

    1.版本介绍 Elasticsearch: https://www.elastic.co/products/elasticsearch 版本:2.4.0   Logstash: https://www ...

  3. update多表更新的2种方式

    update t1 set TermBeginQty =isnull((select top 1 JiaoPlusQty from WMS_RptMaterialPutDaily r where t1 ...

  4. 通过yum安装Nagios

    通过yum安装Nagios 2012年04月05日 ⁄ Nagios ⁄ 暂无评论   QQ空间新浪微博腾讯微博人人网更多3   前提先自行安装好Apache+php 测试环境主监控机:CentOS ...

  5. heritrix

    Heritrix3.0教程    http://blog.csdn.net/neo_liukun/article/category/1118819

  6. C++ 不支持模版的分离式编译

    1.C++不支持模版的分离式编译,为什么? C++是分别,单独编译,对于每个cpp文件,预编译为编译单元,这个编译单元是自包含文件,编译的时候,不需要其他的文件,编译好了,生成obj文件,然后连接成e ...

  7. C++ 预编译头文件

    1.解决什么问题? C++ 编译器是单独,分别编译的,每个cpp文件,进行预编译(也就是对#include,define 等进行文本替换),生成编译单元.编译单元是一个自包含文件,C++编译器对编译单 ...

  8. Codeforces Round #328 (Div. 2) D. Super M 虚树直径

    D. Super M Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/592/problem/D ...

  9. Codeforces Gym 100425D D - Toll Road 找规律

    D - Toll RoadTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view ...

  10. java web servlet

    一.什么是Servlet Servlet是一种小型的Java程序,它扩展了Web服务器的功能.作为一种服务器端的应用,他是运行在Servlet容器当中,例如Tomcat就是一种流行的Servlet容器 ...