タグ

ブックマーク / weblog.nqou.net (1)

  • DBD::SQLiteの入出力をちゃんと考えてみる - 日曜プログラマのそゞろ事

    普段から「binmode STDOUT => ":encoding(cp932)";」をよく使うので、なんとかならないかやってみました。 やってみればちゃんと出来るものです。 基的には、Perlの内部形式の考え方をおさらいする形になった。 プログラムで扱う前にdecode、出力するときはencodeする。 それは、標準入出力だろうが、データベースだろうが、同じ扱い、ということ。 SQLiteはutf8の入出力が(少なくともver3.6.13では)可能のようだ。 まずは出力の時、データベースに渡すステートメントは「Encode::encode_utf8」してから出力する。 そして入力の時、つまり、データベースからデータを取る時は、とって来た後に「Encode::decode_utf8」する。 イメージは下の図。 今回は出力だけなのでSTDINは使っていないが、binmode S

  • 1