kobapan@wiLiki
Login
Linux

Linux:さくらレンタルサーバ sqlite3でコマンドラインから日本語入力

sqlite3 で日本語の入力ができない

sqlite3 の対話用のcui Command Line Shell For SQLite では、日本語の入力ができない。

$ sqlite3 hoge_db
sqlite> select * from fuga_table where name = "日本語";

ということが出来ない。「日本語」と入力しようとすると、消えてしまう。

ログインシェルの文字コード

さくらレンタルサーバのログインシェルの文字コードを変更していない場合は、まず変更する。

bash の場合

# .bashrc
export LANG=ja_JP.UTF-8

csh の場合

# .cshrc
setenv LANG ja_JP.UTF-8

としておいて、ログインしなおす。

sqlite3 コマンドを batch モードで使う

sqlite3の対話モード用シェルが、日本語の入力に対応していないのが問題。しかし、sqlite3コマンドには、対話モードに入らず処理を行える、バッチモードが存在するので、これを使えば一応解決する。

$ sqlite3 hoge.db "select * from fuga_table where name = \"わはは\";"
$ sqlite3 hoge.db "update fuga_table set name = \"自然農ガットポンポコ 小林\" where id = 8;"

もしくは、

$ sqlite3 -batch hoge.db "select * from fuga_table where name = \"わはは\";"
$ sqlite3 -batch hoge.db "update fuga_table set name = \"自然農ガットポンポコ 小林\" where id = 8;"

Debian
Emacs
Firefox
Gauche
JavaScript
Linux
Scheme
org-mode/latex

More ...