删除sqlite中的UTF-8子字符串

Remove UTF-8 substring in sqlite

我正在尝试从 table 中删除 some invisible characters。我试过这个查询:

UPDATE table SET text = REPLACE(text, x'202B', '' )

运气不好。我还尝试使用以下方式选择它:

SELECT REPLACE(text, x'202B', '@@@@') AS text FROM table

但没有任何内容被替换,所以我猜测它在 text 列中找不到 x'202B',但是如果我使用此查询:

SELECT * FROM table WHERE text REGEXP "[\x202B]"

我确实得到了结果。

x'202B' 不是单个不可见的 Unicode 字符;它是一个包含两个 ASCII 字符 </code> 和 <code>+.

的 blob

所有 SQLite 字符串均以 UTF-8 编码。 当您手动从字节构造字符串时,您必须使用相同的编码:

x'E280AB'