C#和JAVA客户端到MySQL服务器不能同时进行整理

时间:2016-08-13 19:02:40

标签: java c# mysql utf-8 collation

我在C#和JAVA上玩测试客户端,想要执行一个简单的查询:* select * from data; *

mysql 5.7,connector / j 5.1.39,connector / .net 6.9.9。数据表分别有ID和VAL列 - int和text。 db模式,表和文本列使用utf8排序规则,但奇怪的是我无法让两个客户端同步接收查询结果。更改排序规则会导致c#或java失败 - 尝试使用utf8mb4,latin1和更多随机选择。

如果C#DataReader有记录,则JAVA ResultSet为空,反之亦然。 当C#失败时抛出: 尝试读取结果集时遇到致命错误 内部异常: 数据包的预期结束 。如果java失败,它只有一个空的ResultSet

我尝试更改不同的排序规则和charset / characterEncoding设置,试错法引导我到这里:

如果我对数据库和以下C#连接字符串使用utf8排序规则:

server = x.x.x.x; user = mydbuser; database = mydb; port = 3306; password = mypassword; Character Set = utf8

和这个Java连接字符串

JDBC:MySQL的://x.x.x.x/mydb用户= mydbuser&安培;密码=输入mypassword&安培;的characterEncoding = ASCII

这两个应用都显示结果 - 即使VAL列包含utf(西里尔字母)字符,java客户端也会正确显示ascii参数。如果characterEncoding设置为utf8,则ResultSet再次为空。

我无法解决为什么会这样做。

0 个答案:

没有答案