4

我有一个 MySQL 数据库,其中包含一些可以包含拉丁字符或日语字符的 varchar 字段。有些条目包含日文字符,这不是问题。但是,从我的 C# 代码中,使用MySqlConnection,我无法在我的WHERE子句中使用日文字符获得正确的结果。似乎比较日文字符就好像它们是问号一样。例如,查询WHERE series_title LIKE '%未来警%'不返回series_title包含“未来警”的值,而是返回series_title包含“???”的所有条目。

一些细节:

  • series_title是一个varchar(150)with collat​​ion utf8_general_ci
  • ConnectionStringforMySqlConnection包括 kv对CharSet=utf8_general_ci
  • 数据库确实包含日文字符,并且能够将它们返回给 C# 客户端 - 只有在向其发送日文字符时才会出现问题
4

2 回答 2

4

尝试添加charset=utf8到您的连接字符串:

server=server;uid=my_user;password=pass;database=db;charset=utf8;

编辑:

连接后尝试执行此sql:

SET NAMES utf8

于 2013-03-15T02:31:36.780 回答
0

我会确保您的数据使用正确的编码存储。对于日语,您可能想尝试 eucjp,您可以在这里找到比您想知道的更多的字符编码。看起来您可能还需要 BOM。祝你好运,让我知道你过得怎么样。

于 2013-03-15T03:14:12.080 回答