CSVファイルを読み込む際「nullが埋め込まれている」とエラーが出た時はUTF-16LEを疑う

Windowsのもと作られたCSVファイルを読み込む際、CP932を指定しようというのは定石だが、それでもうまくいかないことがある。

エラーメッセージを読むと「nullが埋め込まれている」とある。

意味がわからない。

「nullが埋め込まれている」だから大方「R embedded null」あたりでググればなんかヒントあるだろと思って検索すると以下のSOがトップで出てくる。

stackoverflow.com

 

解決策を見ると、こういうファイルは大抵Windowsで作られたUTF-16LEのファイルだからそれを試してみろとある。

実際に試してみるとうまくいった。

 

ちなみにreadrパッケージのread.csv()でlocale = locale(encoding = "UTF-16LE")と指定してもうまくいかない。

ここに対応するのはなかなか大問題らしく未対応のようである。

 

github.com