【发布时间】:2014-06-17 07:19:36
【问题描述】:
我一直在使用 spring mvc 开发一个 Web 应用程序。当我使用 tomcat 7 和 mysql 数据库在 openshift 上部署它时,我遇到了以下问题。来自 HTML MULTIPART 表单的希腊字母保存在数据库中,例如:
ÃÂÃÂÃÂÃÂýñÃÂ
在我将字符正确保存为希腊字母的本地部署中未出现此问题。 为了确保在我的 jsp 和 html 中使用 UTF-8 编码:
<%@page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
在我的 web.xml 中:
<filter>
<filter-name>characterEncodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
为了连接到数据库,我在连接 URL 中使用了以下参数: ?useUnicode=true&characterEncoding=UTF-8
我还将以下数据库参数更改为 utf-8:character_set_client、character_set_connection、character_set_database、character_set_results、character_set_server 和 utf8_general_ci 的排序规则。这是通过 SET 查询完成的。
关于什么可能导致编码问题以及如何解决它的任何想法?
更新:HTML 表单是多部分的
【问题讨论】:
-
经过一些实验,数据库似乎支持希腊字符,但在提交表单后不知何故编码混乱了。仍然不确定出了什么问题。将应用程序移至 Cloudbees,一切似乎开箱即用!
标签: java mysql encoding utf-8 openshift