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. 三星手机 Samsung Galaxy S3 无法复制粘贴的不完美解决方法

    问题简单描述 从上周开始我的Samsung Galaxy S3手机就无法实现复制粘贴功能了,每次复制时都提示复制到了剪贴板,但是粘贴时就会发现根本粘贴不了,无法打开剪贴板.真的是莫明其妙啊,我的手机没 ...

  2. JAVA小笔记

    一.system.err.println() 和 system.out.println() 有什么不同 同时使用了System.out.println与System.err.println()打印输入 ...

  3. ecshop后台限制IP登录

    ecshop是开源系统,所以难免会有漏洞   黑客攻击网站,往往是通过漏洞获取后台管理员权限,然后再做一些破坏 如果我们在后台文件里限制指定的IP才能登录后台,就相对安全多了 下面给出大家解决方案: ...

  4. 【转】makefile语法规则

        1.源程序的编译    在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器.       假设我们有下面一个非常简单的 ...

  5. XSS攻击:SOHU视频XSS漏洞导致其用户成为DDOS肉鸡

    XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入当中Web里面的html代码会被运行,从而达到恶意攻击用 ...

  6. BW性能优化

    少写例程,减少ABAP处理时间,例程要有效率减少查询数据库表先加载主数据,然后加载事务数据创建聚集进行数据压缩M:N关系的数据不能放到一个维度减少计算指标数量,提高上载效率并行加载建模型时如果有日的分 ...

  7. URAL 2046 A - The First Day at School 模拟题

    A - The First Day at SchoolTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...

  8. C# 启动外部程序的几种方法

    . 启动外部程序,不等待其退出. . 启动外部程序,等待其退出. . 启动外部程序,无限等待其退出. . 启动外部程序,通过事件监视其退出. // using System.Diagnostics; ...

  9. [Canvas] Make Canvas Responsive to Pixel Ratio

    Canvas is great for high performance graphics rendering but by default the results look blocky on ph ...

  10. Android多媒体应用开发-控制摄像头拍照

    现在的手机的功能可谓是五花八门,手机照相功能就是特别突出的一点,现在的手机照相机甚至成了专业数码照相机,可以拍摄出清晰的照片和录制高分辨率的视频.Android操作系统呢,提供了相应的功能来控制拍照: ...