【问题标题】:Mysql latin characters issue in javajava中的Mysql拉丁字符问题
【发布时间】:2021-03-19 20:25:50
【问题描述】:

我有一个名为“tasks”的表,其中包含 taskid、taskname 和 description 列。

描述列的值带有拉丁字符,例如 'ô'。

SELECT    cast(`taskname` as binary)
FROM  `tasks` TC_1
WHERE  (cast(`description` as binary)  IN ( 'Impôrtant'  ))

当我在 MySQL 中运行这样的查询时,我得到了结果,但是当我使用 java executequery 方法运行相同的查询时,结果集是空的。

我也尝试过以下查询:

SELECT    cast(`taskname` as binary)
FROM  `tasks` TC_1
WHERE  (cast(`description` as binary)  IN (cast( 'Impôrtant' as binary )))

但面临同样的问题。

我认为问题与字符集有关。

我的数据库字符集是“latin1”。

注意:忽略语法错误

【问题讨论】:

  • 你确定 executequery 方法不会改变文本吗?您可以在查询日志中查看实际查询。 dev.mysql.com/doc/refman/8.0/en/query-log.html
  • ô 可以用 latin1 十六进制编码 F4 或 utf8 编码为 C3B4。如果不知道表格中的哪个十六进制并且在Impôrtant 中,我们无法回答您的问题。给出的任何答案都可能是错误的,并且可能会使事情变得更糟。

标签: java mysql character-encoding resultset


【解决方案1】:

我建议对字符使用转义序列,因为你给它的字符是 \u00F4。如果要查找其他字符的转义码,可以使用https://www.rapidtables.com/code/text/unicode-characters.html。

【讨论】:

    猜你喜欢
    • 2015-06-26
    • 1970-01-01
    • 2011-12-17
    • 2023-03-19
    • 1970-01-01
    • 2015-03-24
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多