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字符集。 这可能导致问题吗?
答案 0 :(得分:1)
检查您的排序规则。 数据库本身可以有一个整理,而另一个表完全不同。 如果混合两个表中的排序规则,则会出现此错误。
此外,瑞典排序规则似乎是数据库的默认设置(不知道为什么)。
答案 1 :(得分:0)
您的Java项目中的编码是什么?你确定它也是大5吗?
答案 2 :(得分:0)
您是在JSP中进行任何编码转换,还是只将oracle-data放入mysql-database?
通常,在脚本和表中使用相同的编码非常重要,并且在与数据库的连接中非常重要。