MySQL将查询中的日文字符作为问号进行比较
本文关键字:比较 字符 查询 文字符 MySQL | 更新日期: 2023-09-27 18:03:55
我有一个MySQL数据库,其中一些varchar字段可以包含拉丁字符或日本字符。有些条目包含日文字符,这不是问题。然而,从我的c#代码中,使用MySqlConnection
,我无法在我的WHERE
子句中使用日语字符获得正确的结果。它似乎把日文字符当作问号来比较。例如,对WHERE series_title LIKE '%未来警%'
的查询不返回series_title
包含"的值,而是返回series_title
包含"的所有项。
一些细节:
-
series_title
是varchar(150)
,排序规则为utf8_general_ci
。 -
MySqlConnection
的ConnectionString
包含kv对CharSet=utf8_general_ci
- 数据库确实包含日文字符,并且能够将它们返回给c#客户端-只有当日文字符被发送给它时才会出现问题
尝试将charset=utf8
添加到您的连接字符串:
server=server;uid=my_user;password=pass;database=db;charset=utf8;
SET NAMES utf8
我会确保您的数据使用正确的编码存储。对于日文,您可能想要尝试eucjp,在这里您可以了解更多关于字符编码的信息。看起来您可能还需要BOM。祝你好运,让我知道你过得怎么样。