SQLite3で文字列データ(SJIS)を
 

 
SELECT * FROM table WHERE column LIKE '%キーワード%'
  

と検索すると上手くマッチしないことが多発。
多分UTF-8とかだとうまくいく。
 
・・・けど、もう動いちゃってるシステムをかえるのは大変。
 
ということでちょっと無理やりな方法で検索をかける。
 

 
SELECT * FROM table WHERE hex(column) LIKE '%16進数に変換したキーワード%'
  

SQLiteのhex()関数はバイナリを16進数に変換してくれるので、
これに対してLIKE検索をかける。

キーワードを16進数に変換するのはPerlの場合、

 
unpack("H*", '文字列' );
 

などとすればOK。(パフォーマンスは結構悪そう)

ただし、SQLite3のhex()は16進数にしたときのアルファベットは大文字、Perlの場合は小文字なので、どちらかにあわせて検索をかける必要があるので注意。