Я пытался вставить строку в кодировке base64 в базу данных SQLite, но когда я читаю значение, я получаю результат, отличный от того, что я сохранил.Более конкретно, каждый раз, когда моя строка содержит символ «+», она сохраняется как «?».в моей базе данных.
Я подумал, что, возможно, два не алфавитно-цифровых символа в base64, а именно '+' и '/', являются чувствительными символами в SQLite, поэтому я провел небольшое исследование и увидел эту страницу:http://www.sqlite.org/lang_expr.html
Я вижу, что + является унарным оператором, а / является двоичным оператором ... но, тем не менее, если я вставлю строку, содержащую эти символы, в мою таблицу, это не должно вызвать никаких проблем?
Кроме того, это может быть не связано с проблемой, но я кодирую с Javascript, я использую SQLite является клиентская сторона базы данных для Firefox.
Что касаетсякод, который я храню с этим API, предоставленным Firefox:
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;