Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中的字符集问题_Mysql_Character Encoding - Fatal编程技术网

mysql中的字符集问题

mysql中的字符集问题,mysql,character-encoding,Mysql,Character Encoding,Mysql的环境如下: character_set_database="big5" 当我发送一个包含传统中文的SQL时 (例如“从where名称中选择*)= '中') 从jdbc到mysql数据库,将抛出以下异常: Illegal mix of collations (big5_chinese_ci,IMPLICIT), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation ' IN '' 我怎样

Mysql的环境如下:

character_set_database="big5"
当我发送一个包含传统中文的SQL时

(例如“从where名称中选择*)= '中')

从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不能自动解决这个问题


我已尝试转换,但无法将汉字保存到拉丁1字符集。 这可能会导致问题吗?

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


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

您在java项目中的编码是什么?您是否确保它也是big-5?

JSP无法解决此问题。JSP如何知道您想要什么

您是在JSP中进行编码转换,还是将oracle数据放入mysql数据库


一般来说,在脚本、表中使用相同的编码很重要,在与数据库的连接中也很重要。

排序规则是用来做什么的?所以你的意思是这是数据库设置问题,但不是因为我的jsp代码中的编码有问题吗?在你的问题中,你只提到了MySQL。但是,是的,这是一个database问题。排序规则是用于比较字符集中字符的一组规则。修改所有表,使它们共享相同的排序规则。它只在交互表之间需要,但比“抱歉”更安全。但我们需要在oracle和mysql之间执行此操作,并且当我的程序从oracle获取数据时(其编码为ISO-8859-1)并将其传递到JDBC中的SQL语句中,它会有这样的问题,但我无法更改oracle的排序规则。如何解决此问题?为什么JSP不能自动解决此问题?您需要在两端使用相同的排序规则,或者至少,在JSP中翻译编码。JSP应该为此提供一个函数。您已尝试转换但未转换为中文字符c无法保存到拉丁字符集。这可能会导致问题吗?您无法将中文字符转换为拉丁字符集,您可以尝试将其转换为utf,也许这会起作用,但最好的方法是,在系统的每个部分使用相同的编码,否则您将遇到麻烦。请不要忘记使用正确的字符集r与数据库的连接: