首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Spring-MVC / Java保存汉字

用Spring-MVC / Java保存汉字
EN

Stack Overflow用户
提问于 2010-12-01 05:07:07
回答 3查看 3.3K关注 0票数 1

我正在尝试将表单提交中的中文字符保存到数据库中。

我在jsp上设置了contentType,通过

代码语言:javascript
复制
<%@ page contentType="text/html;charset=UTF-8" %>

我还在jsp的中设置了这个标记:

代码语言:javascript
复制
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8" />

但是,当我提交表单时,我的控制器看到一个与我输入的字符不同的字符。

我正在输入字符我并看到??在控制器中。当数据重新显示在页面上时,它显示相同的错误字符(??)。

为什么控制器不能获得正确的字符?

EN

回答 3

Stack Overflow用户

发布于 2010-12-01 06:18:37

在web.xml文件中的任何其他过滤器之前声明一个CharacterEncodingFilter

代码语言:javascript
复制
<filter>
    <filter-name>charsetFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>charsetFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

在您的jsp文件中,尝试在文件的最开始添加以下内容:

代码语言:javascript
复制
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
票数 3
EN

Stack Overflow用户

发布于 2010-12-01 05:15:55

并不是所有的浏览器都会遵守您在页面或表单中指定的字符集。Spring提供了一个名为CharacterEncodingFilter的过滤器,它可以在请求到达控制器之前添加字符编码或强制执行特定编码。

票数 1
EN

Stack Overflow用户

发布于 2010-12-01 05:10:41

在表单中添加一个accept-charset属性:

代码语言:javascript
复制
<form method="POST" accept-charset="utf-8" ... >

这将告诉浏览器以UTF-8格式将表单内容提交给服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4318664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档