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文字目から始まる文字列を示す。