0

我有一个 SQLite 文件,其中包含一个可以包含 HTML 编码文本的文本列。例如,它可以包含一个类似的值#Sample,当显示时应该是#Sample&#35是# 符号的HTML 编码)。

但是,当我使用 读取该列的值时sqlite3_column_text,我得到的文本是双编码的#Sample我得到的文本不是 get ,而是&ාSample

我已经仔细检查了数据库的编码是 UTF8,尝试了所有其他编码,以及许多其他明显的调试方法,但无法弄清楚为什么会发生这种情况。我的简单目标 C 代码如下。谁能想到问题可能是什么?

const char *c = (const char *)sqlite3_column_text(statement, 0);
NSString *stringValue = [NSString stringWithUTF8String:c];
4

1 回答 1

0

SQLite 不会更改您放入其中的字符串(除非您明确调用诸如replace()之类的东西)。

所以问题出在插入数据的代码上;那里已经存在双重编码。

于 2016-06-18T07:01:58.467 回答