从Java在MySQL中记录utf-8字符串时出现问题
我试图记录一个从客户端发送到MySQL数据库的字符串,该字符串来自Java应用程序。从客户端发送的字符串是UTF-8编码的。我已经确认了这一点,因为我使用wireshark等工具进行了数据包跟踪。客户端发送的字符串是3个字符,分别是拉丁字母OE(0xc593)和beta(0xc39f)、欧元符号(0xE2 0x82 0xAC)。我使用setstring的prepared语句方式将字符串记录到数据库中。该表是在支持utf-8字符编码的情况下创建的。现在,当我在数据库中看到记录的字符串时,我发现从Java在MySQL中记录utf-8字符串时出现问题,java,mysql,jdbc,Java,Mysql,Jdbc,我试图记录一个从客户端发送到MySQL数据库的字符串,该字符串来自Java应用程序。从客户端发送的字符串是UTF-8编码的。我已经确认了这一点,因为我使用wireshark等工具进行了数据包跟踪。客户端发送的字符串是3个字符,分别是拉丁字母OE(0xc593)和beta(0xc39f)、欧元符号(0xE2 0x82 0xAC)。我使用setstring的prepared语句方式将字符串记录到数据库中。该表是在支持utf-8字符编码的情况下创建的。现在,当我在数据库中看到记录的字符串时,我发现 s
select hex(message) from table1
C385 C293 C383 C29F C3A2 C282 C2AC
好像有东西在改变中间的绳子。有人能帮我解决这个问题吗
谢谢。根据
需要
使用与服务器通信
Unicode应该设置客户端
相应的字符集;对于
例如,通过发出一组名称“utf8”
声明
您还应该检查和系统变量,了解MySQL是如何试图解释您的字符串的
您还可以通过运行showtablestatusindatabase
查询来检查各个表正在使用的排序规则
希望这能让您更清楚地了解MySQL服务器正试图如何处理从客户端发送的字符串。在网上阅读也应该很有启发性
祝你好运:-)