当前位置: 首页 > 面试题库 >

如何将struts2中的字符集更改为utf-8

宇文鸿畴
2023-03-14
问题内容

嗨,我有一个测试场,我不想在其中进行英语测试(例如
俄语),但是在我的动作课中我得到的不是文字?????????。我
试图编写简单的过滤器,该过滤器描述 了struts2中的参数字符集转换

但是还是不行..有人可以帮我吗

更新我有这个

<s:textfield key="index.login" name="login" />

我想用俄语进行测试,然后将其发送给我的
action。但是在我的action类中,我得到的不是文本,而是纯文本?????????。要解决
此问题,我需要将charset更改为utf8而不是win1251。


问题答案:

Create a filter:

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class CharacterEncodingFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig)
            throws ServletException {
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
            throws IOException, ServletException {
        servletRequest.setCharacterEncoding("UTF-8");
        servletResponse.setContentType("text/html; charset=UTF-8");
        filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void destroy() {

    }
}

Declare it into your web.xml:

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>your.package.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

而且你很好。还要确保您的每个JSP页面都包含:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>。如果您的
应用程序在tomcat上运行,请确保将addURIEncoding="UTF-8"
属性添加到Connector元素。



 类似资料:
  • 问题内容: 如何更改所使用的默认编码? 参数使用UTF-8编码。如何使用ISO 8859-1进行编码? 问题答案: 您可以使用:

  • 我有一个jsp文件,在那里我收集表单值,并通过jQuery Ajax将其发送到strut 2 action class。 我的Ajax函数看起来像 当我解码并提醒它的文本我正确编码和解码。 当我通过ajax将其发送到struts2时,它会产生问题。 我已经检查了Interceptor中的值它显示值??????? 拦截器 在我的jsp文件中,我将内容类型设置为UTF-8,在ajax中,我也检查了内容

  • 我想将我的IDE连接到OracleSQLDeveloper。因此我必须使用这行代码: 要输入密码,我使用: 我想知道如何将这个JPasswordField转换成字符串,这样我就可以使用代码I的“Connect”行(这一行仅适用于字符串) 编辑:这是输入密码的代码。我在stackoverflow上找到了它:

  • 问题内容: 我的数据库不在UTF8中,我想将所有表都转换为UTF8,我该怎么做? 问题答案:

  • 问题内容: 我使用Java程序从网站下载文件,标题如下所示 没有指定编码 我要做的是下载后将文件名传递给另一个应用程序以进行进一步处理。我用 在标准输出中,字符串打印为 如何在Java中将标准输出更改为“ UTF-8”? 我尝试编码为“ UTF-8”,但内容仍然相同 更新: 我无需进行任何代码更改即可解决此问题。在我从其他应用程序将此文件称为我的jar文件的地方,我执行了以下操作 这似乎已经解决了

  • 我正在使用带有Selenium的testNG。我有两种记录器,一种是log4j记录器,另一种是testNG reporter.log()。现在的问题是我需要记录一些中文文本。但它是作为‘????’而不是中文文本。所以我更改了log4j.properties文件,只添加了两行: 现在,在我的log4j日志中,它是正确的,但在testNG Reporter.log()中,它仍然是“?????”。