sqlite3-ruby で自動的に文字コードを変換
入出力で毎回文字コードを変換するのが面倒だったから。
#!/usr/local/bin/ruby -Ks require 'sqlite3' require 'sqlite3/driver/native/driver' require 'kconv' class MyDriver < SQLite3::Driver::Native::Driver def bind_text( stmt, index, value, utf16=false ) super( stmt, index, value.to_s.kconv( Kconv::UTF8, Kconv::SJIS ), utf16 ) end def column_text( *args ) super.kconv( Kconv::SJIS, Kconv::UTF8 ) end end begin db = SQLite3::Database.new( 'test.db', :driver => MyDriver ) db.execute( 'SELECT id, content FROM testtable WHERE content = ?', 'こんにちは!!' ) do |row| puts '%d : %s' % row end ensure db.close if db end
こんなんでどうだろう