qshinoの日記

Powershell関係と徒然なこと

mysql utf16le

mysql utf系はBOM Byte order mark 未対応。

ファイルからbinaryで取り込み、先頭2バイトを除去したものをキャストすればmysql上の文字列として扱える。

// テーブルt のbinカラムにbinary型として、utf16le with bomデータが入っている場合。

select convert(substr(bin,3) using utf16le) from t ;

select cast(substr(bin,3) as utf16le) from t ;

sqlでは文字列の文字位置が0からではなく1から始まる事に注意。つまり最左端の文字のインデックスは1.

sibstr(bin,3)はbinデータの先頭2文字を除く、3文字目から始まる文字列を示す。