【问题标题】:Using UTF8 INSTR in SQLite在 SQLite 中使用 UTF8 INSTR
【发布时间】:2013-03-10 16:50:13
【问题描述】:

我正在尝试在 SQLite 中使用 INSTR 函数,但如果我使用 UTF8 字符,它会返回错误的值。如何避免这个问题?

select instr('akçe', 'a'); --returns 1 (Correct)
select instr('akçe', 'k'); --returns 2 (Correct)
select instr('akçe', 'ç'); --returns 0 (Wrong)
select instr('akçe', 'e'); --returns 3 (Wrong)

【问题讨论】:

    标签: unicode utf-8 sqlite


    【解决方案1】:

    为我工作:

    > select instr('akçe', 'ç');
    3
    > select instr('akçe', 'e');
    4
    

    显然,您实际上并没有使用 UTF-8。

    检查select quote(cast('ç' as blob)); 的输出是否为X'C3A7'

    【讨论】:

    • 选择报价(cast('ç' as blob)); --为我返回 X'87'。
    • 这是一些 DOS 代码页。我猜你在 Windows 控制台中使用sqlite3.exe
    • 是的,你是对的。现在,我明白了这个问题,我将在控制台之外尝试它。谢谢...
    猜你喜欢
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    相关资源
    最近更新 更多