POST方法Spring和Thymeleaf中的java编码问题
我制作了一个简单的表单,用户输入一个名称,然后将该名称存储在数据库中。我正在使用Spring MVC
和Thymeleaf
。我的数据库是MySQL
。问题发生在我试图输入非拉丁字符时。
在将非拉丁name
存储到数据库中后,我试图在网页上显示它,但我得到的不是西里尔字母,而是像这样的奇怪字符:
ИмÑ
- 我确信数据库中的编码是正确的,因为当我试图
使用
MySQL Workbench
存储非拉丁名称。编码为 对李> - ThymileAF编码也被设置为UTF-8。当我输入 例如,在这样的标记中:
<h1> Заголовок </h1>
我已经试过了:
- 在html文件中添加这一行:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- 在
form
标记中添加此属性:<form accept-charset="UTF-8" ...
但什么都不管用。我做错了什么
# 1 楼答案
我找了很多,终于找到了解决办法
-我宁愿称之为变通方法而不是解决方案的第一个方法:
-在我看来,第二种解决方案看起来要好得多:
首先,创建一个
Filter
类,并在其中设置POST请求的编码:然后你应该在
web.xml
中注册一个Filter