繁体   English   中英

Tomcat再次编码问题

[英]Tomcat encoding issue again

关于这个主题,在StackOverFlow上有很多问题:

  1. 在Tomcat上处理URI中的字符编码
  2. 为什么在Java中使用request.getParameter()时字符损坏?
  3. request.getParameter()在Java Servlet中无法正确显示字符编码
  4. Tomcat的字符编码问题

关于此问题,Tomcat Wiki中还有一个链接: http : //wiki.apache.org/tomcat/FAQ/CharacterEncoding

所以我不知道我该写什么题目。 也许你会帮我这个一二。

我想到的问题是:当带有西里尔字母的文本来自请求时,我得到以下请求参数值: to ÐÐ¸Ð·Ð½ÐµÑ Ð¸ ÑинанÑÑ

所以我现在有什么:

  1. 所有的jsp文件都具有UTF-8编码,如下所示:
 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  1. 在Eclipse->首选项->常规->工作区->文本文件编码设置为UTF-8中
  2. 数据库编码设置为: DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;

  3. \\apache-tomcat-7.0.57\\conf文件夹server.xml中,连接器之一被修改为:

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

  1. 使用doFilter方法创建编码过滤doFilter

     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest)request; String requestEncoding = request.getCharacterEncoding(); if (requestEncoding == null) { request.setCharacterEncoding(encoding); } chain.doFilter(request, response); } 

jsp读取时,我还尝试以不同的方式获取参数,例如:

 <a href="<c:url value="controller?command=viewFaculty"> 
<c:param name="name" value="${faculty.name}"/> </c:url>">${faculty.name}</a>

要么

<a href="<c:url value="controller?command=viewFaculty"> <c:param name="name" value="${faculty.name}"/>

而且我仍然得到这些丑陋的人物。 您能帮我一些建议吗?

我解决了我的问题。 问题是我没有编辑原始的server.xml 我注意到tomcat在Eclipse项目资源管理器中已作为名为Servers项目的书签出现。 他身上有些文件,例如:

  1. catalina.policy
  2. catalina.properties
  3. context.xml
  4. web.xml
  5. tomcat-users.xml
  6. server.xml

这样就发生了,tomcat已经具有预配置的文件,而且奇怪的是,由我自己编辑的\\apache-tomcat-7.0.57\\conf文件夹中的server.xml文件不同于该项目中的文件。

在问题开始时,我已经将一些问题与这个问题联系在一起,在我的帖子结尾,我想分享我最近发现的一个问题,在我看来,这似乎是解决该问题的最佳指南: 如何获取UTF- 8在Java Webapp中工作?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM