javascript - 使用 SQLite 插入/读取 Base64 字符串

标签 javascript sql database sqlite base64

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

我想也许 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 编码的字符串没有正确存储的原因。

关于javascript - 使用 SQLite 插入/读取 Base64 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4965969/

相关文章:

javascript - Laravel 5 网站中的 CSS 和 JavaScript 文件

javascript - 在 Javascript 中获取父元素的正确 event.target?

javascript - Apache Cordova : running cordova run browser without launching browser app

mysql - 如何根据 10 个值的范围查找字段的计数

数据库触发器/参照完整性和内存缓存

javascript - Android:将图像 URI 从 webview 网站发送到应用程序

sql - 合并、组合、合并行

sql - 在 ST_Distance 中使用子查询

mysql - 我应该如何设计关系数据库中的表?

.net - 如何使用 .NET 连接到 Informix?