作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 sqlite 数据库中有一个 varchar 列。特定的文本行有一个反斜杠,它与“\n”一起用于 UITextView 中的回车符。当通过 SELECT 从数据库读取值时:
myobject.text = [NSString stringWithUTF8String: (char *)sqlite3_column_text(selectstmt, 2)];
反斜杠被转义,看起来像:
"\\n" rather than "\n"
这不会解释为回车符。如果我在文本中添加两个黑斜杠,第二个斜杠也会被转义,并最终在将 TextView 添加为 subview 时导致异常:
由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[ setValue:forUndefinedKey:]:此类不符合键测试的键值编码。”
有没有办法防止这些逃逸或者我需要手动清理它?
最佳答案
反斜杠无疑就在列的文本中——您“看到”它是双倍的,因为这就是反斜杠的显示方式(以避免与转义序列混淆)。 sqlite 不会改变您在查询时放入其中的文本 - 但可以说,数据库中的文本并不是您想要接收的文本。
您需要做的是将两个字符反斜杠-n更改为单个字符换行符
,并且您可以在数据库中(一劳永逸,或在每个查询中)进行更改或在您的 Objective-C 代码中(针对每个查询),具体取决于您的具体需求。
关于iphone - 防止 sqlite 转义反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/932396/
我是一名优秀的程序员,十分优秀!