今日ももじばけ

csvのコンマの代わりに";"を使ったデータ(utf8の日本語含む)に,split(/;/)すると,日本語の一部の内部表現が,ASCIIの";"とかぶっているらしく,正しくsplitできない.どうやったらなおるのかよくわからない.

わかったら追記する予定.

==ナイーブな解決法==

データの中身に無意味なタブ記号を含むデータだったので,いったんエクセル上でs/\t//gして(エクセルの使い方がよくわからないので一度csvにしてsedでs/\t//gしたけどそれはまあどうでもよい),最後にタブ区切りテキストとして出力させる.タブ記号のASCII表現は,utf8の内部表現とかぶっていないようなので,split(/\t/)は正しく動作するっぽい.

==phpMyAdminのバグについて追記==
RDC4180によるCSVの定義をみると,最後のフィールドの後にコンマは付けてはいけないことになっている.
http://tools.ietf.org/html/rfc4180
にもかかわらず,phpMyAdminくんでデータをインポートする場合,最後のフィールドの後にコンマが付いていないと読めないらしい.

==さらに追記==

phpMyAdminのバグ云々は嘘でした.すいません...僕がミスってました..

==SQLのSELECT文で正規表現==

SELECT FROM [tablename] WHERE [columnname] REGEXP BINARY '.*h[o|u]g[a|e]'