因此,我一直在寻找最简单、最有效的方法来为我的应用程序转义 SQLite 中的恶意字符串。这里的大多数答案通常都有正则表达式路线。我偶然发现了一个答案 sqlEscapeString .
有一个问题。当它转义它时,它似乎也在字符串的末尾添加单引号,所以它从这个:Test's
到:'Test''s'
。现在我真的不知道为什么它会这样做,但我希望有人知道 Android 中存在的功能相反。 DatabaseUtils
似乎没有相应的功能。
最佳答案
我想说,防止恶意字符串的最有效方法就是让 SQLite 来完成这项工作。 Android 包装该功能并使用 ContentValues
、String[]
或 Object[]
参数,具体取决于您使用哪种方法查询数据库,保存转义值。:
在使用上述方法时,在您的 SQL 语句中放置一个 ?
来代替您要转义的字符串。
关于android - 使用 sqlEscapeString() 后如何取消转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12224898/