0
データベースに「
「セブンゴースト;神幻拍挡07;」などの文字列を挿入しようとすると、
エラーはありませんが、選択後はnilとして読み込まれます。
Exemple:
Ruby-sqlite3、データベースに非ASCII文字列を挿入する
string = "セブンゴースト; 神幻拍挡07;"
db = SQLite3::Database.new "randomfilename"
prep = db.prepare "INSERT INTO test_db VALUES (NULL, ?)"
prep.bind_param 1, string
prep.execute
prep2 = db.prepare "SELECT * FROM test_db"
ret = prep2.execute
p ret
は、これがこのようなものが表示されます:
(テーブルが第1の値と第二のテキストとしてプライマリINT鍵有すると仮定)[] nilを、[0]
私のデータベースは良いエンコーディングを持っていない可能性がありますが、その場合はどうすればすべてを失うことなく変更できますか?
をサポートしていますが、あなたは文字列がUTF-8エンコーディングを使用していることを確認していますか? [この回答はアドバイスを提供しますか?](http://stackoverflow.com/questions/27356441/sqlite-in-ruby-prepared-statement-cutting-utf-8-input)? – tadman
列はあなたがそう思っている順番になっていますか?あなたは本当にあなたのINSERTの列を指定する必要があります: 'insert into test_db(column_name1、column_name2)values(null、?)'以上、 'null'を完全に残してください(NULL以外のデフォルトをオーバーライドしない限り) : 'test_db(column_name2)の値を挿入する(?)'。 'test_db'テーブルのスキーマも含めるべきです。 –
両方ともyesですが、putsを使用して文字列コンテンツを表示できます。 –