我面临一个非常烦人的问题:我创建了一个带有spring的form-tags的表单,当我插入带有非拉丁字符的文本时,我得到了一系列questionmarks。我在web.xml中使用了CharacterEncodingFilter但是我仍然面临同样的问题,我在我的控制器的formBackingObject方法中设置了UTF-8中的characterEncoding,我已经将页面编码字符集和enctype设置为UTF-8而没有结果。我知道这里有类似的帖子我尝试了建议的解决方案,但没有任何改变!有什么建议吗?提前谢谢你
答案 0 :(得分:4)
当DB编码或HTTP响应编码无法接受所指示的编码所使用的字节时,通常会出现一系列问号。
由于您已将页面编码设置为UTF-8,因此HTTP响应编码部分很好(假设您所做的只是将<%@page pageEncoding="UTF-8" %>
置于JSP之上)。
因此,数据库编码是可疑的。您需要确保已指示DB使用正确的编码来存储字符。您应该在CREATE DATABASE
和CREATE TABLE
语句中执行此操作。对于某些JDBC驱动程序,您还需要在JDBC连接字符串中传递一个额外的参数,以指定传输字节的编码。详细信息取决于所使用的DB和JDBC驱动程序,因此您可以查阅相应的手册。如果您遇到困难,请更新您的问题以包括使用的数据库品牌/版本。