【问题标题】:UTF-8 encoding in jspjsp中的UTF-8编码
【发布时间】:2012-11-14 00:58:42
【问题描述】:

我目前正在从我的 jsp 页面中的一个类中的一个方法返回一个 utf-8 编码的字符串,但是尽管字符串的大多数字符都可以,但是具有诸如 ό 之类的字母的字母会出现问题,因为它们都被编码为??

如何解决这个问题?

我有 jsp 页面所需的正确指令,以便将其内容编码为 utf-8

我的字符串的内容是希腊语

【问题讨论】:

    标签: java jsp utf-8


    【解决方案1】:

    你是否使用了这个指令<%@page contentType="text/html;charset=UTF-8"%>

    这会将您的 content-type 设置为 utf-8 和您的 pageEncoding

    【讨论】:

    • 这个问题有没有可能是我使用的tomcat服务器造成的??
    【解决方案2】:

    我遇到了同样的问题,对我来说,在 web.xml 中添加来自 spring 的 CharacterEncodingFilter 解决了这个问题:

    <filter>
        <filter-name>SetCharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>SetCharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    即使项目中不使用spring也可以使用(只需下载spring-web-xxx.jar)。

    或者您可以创建自己的过滤器来执行此操作:

    request.setCharacterEncoding("UTF8");
    response.setCharacterEncoding("UTF8");
    

    你可以在 grepcode.com 上找到 org.springframework.web.filter.CharacterEncodingFilter 的源代码,例如,看看它到底做了什么。

    【讨论】:

      【解决方案3】:

      我是如何做到以下几点的:

      我正在使用 Eclipse IDE 并将 Window > Preferences > General > Workspace > Text File Encoding 设置为 UTF-8。

      在那之后,我所有的编码问题,神奇地消失了!!!!!

      谁能解释一下??

      【讨论】:

      • 我猜你的 JSP 中直接有文本,而且你的 JSP 文件没有保存为 UTF8(例如它是 iso-8859-1),对吗? http 响应的编码和保存文件的编码是两个不同的东西。
      猜你喜欢
      • 2013-02-02
      • 2012-07-15
      • 1970-01-01
      • 2012-09-25
      • 2011-11-02
      • 2011-03-27
      • 2015-03-24
      • 2010-10-04
      • 1970-01-01
      相关资源
      最近更新 更多