防止 sqlite 转义反斜杠

2024-02-27

我在 sqlite 数据库中有一个 varchar 列。特定的文本行有一个反斜杠,它与“\n”一起用于 UITextView 中的回车符。当通过 SELECT 从数据库读取值时:

myobject.text = [NSString stringWithUTF8String: (char *)sqlite3_column_text(selectstmt, 2)];

反斜杠被转义,看起来像:

"\\n" rather than "\n"

这不会解释为回车。如果我在文本中添加两个黑斜杠,第二个斜杠也会被转义,并最终在将文本视图添加为子视图时导致异常:

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[ setValue:forUndefinedKey:]:此类不符合键测试的键值编码。”

有没有办法防止这些逃逸或者我需要手动清理它?


反斜杠无疑就在列的文本中——您“看到”它是双倍的,因为这就是反斜杠的显示方式(以避免与转义序列混淆)。 sqlite 不是altering查询时放置在那里的文本 - 但可以说,数据库中的文本不是您想要接收的文本。

您需要做的是将两个字符反斜杠-n更改为单个字符newline,您可以在数据库中(一劳永逸,或在每个查询上)或在 Objective-C 代码(在每个查询上)中实现这一点,具体取决于您的具体需求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止 sqlite 转义反斜杠 的相关文章

随机推荐