【发布时间】:2013-02-02 02:48:04
【问题描述】:
我的网络应用程序存在编码问题。一开始我认为问题出在数据库编码上,但后来我调试了我的 servlet。 如下所示:JSP 页面包含一个表单,其中用户传递一个带有波兰字符的单词,例如“Poniedziałek”,然后我正在调试接收此参数并将其传递给变量的我的 servlet。变量的结果是“PoniedziaÅek”。
我的 JSP 文件中的编码设置为 UTF-8
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
我还尝试使用
在 servlet 中设置编码request.setCharacterEncoding( "UTF-8" );
对我不起作用。 什么会导致这个问题?
编辑:
来自浏览器的标头在 servlet 处读取:
标头名称:host,标头值:localhost:8080
标题名称:user-agent,标题值:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
标头名称:accept,标头值:text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8时间>
标题名称:accept-language,标题值:pl,en-us;q=0.7,en;q=0.3
标头名称:accept-encoding,标头值:gzip、deflate
标题名称:referer,标题值:MY APP ADDRESS
标头名称:cookie,标头值:JSESSIONID=768FC60090233C4DBB9A2E55B4341D32
【问题讨论】:
-
你看过标头了吗?浏览器在请求标头中说了什么。您可能需要一个过滤器来强制对传入请求进行编码,tomcat 有一个built in one。
-
我添加了上面的标题。我在 servlet 上读过它们。浏览器:火狐。
标签: jsp session servlets encoding utf-8