mysql中的字符集问题

时间:2009-08-31 03:10:03

标签: mysql character-encoding

Mysql的环境如下:

character_set_database="big5"

当我发送包含传统中文的SQL时

  

(例如“select * from a name name =   '中')

从jdbc到mysql数据库,它会抛出以下异常:

Illegal mix of collations (big5_chinese_ci,IMPLICIT), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation ' IN ''

我该如何解决这个问题?

但是我们需要在oracle和mysql之间做到这一点,当我的程序从oracle获取数据(它的编码是ISO-8859-1)并将它传递给JDBC中的SQL语句时,它会有这样的问题,但是我无法改变oracle的整理。怎么解决这个?为什么JSP无法自动解决这个问题?

我试过转换但中文字符无法保存为Latin1字符集。 这可能导致问题吗?

3 个答案:

答案 0 :(得分:1)

检查您的排序规则。 数据库本身可以有一个整理,而另一个表完全不同。 如果混合两个表中的排序规则,则会出现此错误。

此外,瑞典排序规则似乎是数据库的默认设置(不知道为什么)。

答案 1 :(得分:0)

您的Java项目中的编码是什么?你确定它也是大5吗?

答案 2 :(得分:0)

JSP无法解决问题。 JSP应该如何知道,你想要什么?

您是在JSP中进行任何编码转换,还是只将oracle-data放入mysql-database?

通常,在脚本和表中使用相同的编码非常重要,并且在与数据库的连接中非常重要。