HTML エンコードされたテキストを含むことができるテキスト列を含む SQLite ファイルがあります。たとえば、 のような値を含めることができます#Sample
。これは、表示時に#Sample ( #
# 記号の HTML エンコーディング) になります。
ただし、 を使用してその列の値を読み取ると、sqlite3_column_text
返されるテキストはdouble-encodedです。を取得する代わりに#Sample
、返されるテキストは&ාSampleです。
データベースのエンコーディングが UTF8 であることを再確認し、他のすべてのエンコーディングと、これをデバッグする他の多くの明白な方法を試しましたが、なぜこれが起こっているのかわかりません。私の簡単な目的の C コードは以下のとおりです。誰が問題が何であるかを考えることができますか?
const char *c = (const char *)sqlite3_column_text(statement, 0);
NSString *stringValue = [NSString stringWithUTF8String:c];