0

我有一个数据库mysql数据库

mysql>SHOW VARIABLES LIKE "%version%";

+-------------------------+-------------------------+
| Variable_name           | Value                   |
+-------------------------+-------------------------+
| innodb_version          | 5.5.31                  |
| protocol_version        | 10                      |
| slave_type_conversions  |                         |
| version                 | 5.5.31-0ubuntu0.12.10.1 |
| version_comment         | (Ubuntu)                |
| version_compile_machine | x86_64                  |
| version_compile_os      | debian-linux-gnu        |
+-------------------------+-------------------------+

mysql> show variables like 'character%';

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | utf8                       |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

当我在 varchar 上插入非拉丁语言时,它工作正常,但当我尝试在 LONGTEXT 类型上插入时,它显示“??????”

我该如何解决这个问题。

我正在使用 java,hibernate jsf 2.0。Spring 框架。

4

2 回答 2

1

在初始化与 db 的连接后尝试运行此查询:

SET NAMES UTF8
于 2013-05-29T16:17:11.803 回答
0

我之前没有提到我也有 Sring 框架工作。解决方案是在我的 web.xml 上添加这个过滤器。希望这对其他人有帮助。

enter code here


<filter>
<filter-name>encoding-filter</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>encoding-filter</filter-name>
 <url-pattern>/*</url-pattern>
 </filter-mapping>
于 2013-05-29T18:54:56.547 回答