编码问题从iOS中的SQLite文件读取HTML编码的字符串

时间:2016-06-17 23:24:23

标签: ios sqlite utf-8 nsstringencoding

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

但是,当我使用sqlite3_column_text读取该列的值时,我得到的文字是双重编码。我得到的文字不是 #Sample ,而是&ා示例

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

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

1 个答案:

答案 0 :(得分:0)

SQLite不会更改您放入的字符串(除非您明确地调用类似replace()的内容)。

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