我有一个MySQL数据库,其中包含一些varchar字段,可以包含拉丁字符或日文字符。有些条目包含日文字符,这不是问题。但是,从我的C#代码中,使用MySqlConnection
,我无法在WHERE
子句中使用日语字符获得正确的结果。它似乎比较日语字符,好像它们是问号。例如,WHERE series_title LIKE '%未来警%'
的查询不返回series_title
包含“未来警”的值,而是返回series_title
包含“???”的所有条目。
一些细节:
series_title
是varchar(150)
,其排序为utf8_general_ci
。ConnectionString
的{{1}}包含kv对MySqlConnection
答案 0 :(得分:4)
尝试将charset=utf8
添加到您的连接字符串中:
server=server;uid=my_user;password=pass;database=db;charset=utf8;
编辑:
尝试在connect:
之后执行此sql SET NAMES utf8
答案 1 :(得分:0)
我会确保使用right encoding存储您的数据。对于日语,你可能想尝试eucjp,你可以找到more than you ever wanted to know about character encoding here。它看起来像你may also need the BOM。祝你好运,让我知道你是怎么过的。