用SQLite插入/读取Base64字符串

我试图在我的SQLite数据库中插入base64编码的字符串,但是当我读回值时,我得到的结果与我保存的结果不同。 更具体地说,每当我的字符串包含一个“+”字符,它就会被存储为'?' 在我的分贝。

我想也许base64中的两个非字母数字字符 - 即'+'和'/'是SQLite中的敏感字符,所以我做了一些研究并看到了这个页面:http://www.sqlite.org/ lang_expr.html

我发现+是一元操作符,而/是二元操作符......但是,如果我将包含这些字符的字符串插入到表中,它不应该引起任何问题吗?

此外,这可能与问题无关,但我使用Javascript编码,我使用的SQLite是Firefox的客户端数据库。

至于代码,我使用Firefox提供的这个API进行存储:

db.record({COLNAME:MY_BASE64_STRING})

我正在阅读:

let db_query = "SELECT * FROM " + dbstore._tableName + " WHERE col_1 = :row_id";
let statement = dbstore._createStatement(db_query);
statement.params.row_id=base64_string;

看来他们正在为XSS防御做一些输入消毒。 这就是为什么b64编码的字符串没有正确地存档。

链接地址: http://www.djcxy.com/p/43715.html

上一篇: inserting/reading Base64 strings with SQLite

下一篇: Testing grammar for ambiguities