複数のCSVを一つのCSVにマージしようと思っていましたが、エラーが出てしまったため調べることに
目次
エラー内容
(result, consumed) = self._buffer_decode(data, self.errors, final)UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x94 in position 0: invalid start byte
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x94 in position 0: invalid start byte
と出てしまいなかなかエラーが解消しない。
一番最初にやってみたこと
utf-8と書かれていたので、読み込みファイルに下記を追加するという方法をよく見かけたので読み込みファイルに追記。
,'r', encoding="utf_8"
encodeを入れてみるが何も変わらない・・・
次にやってみたこと
次にやってみたことは、「Network Kanji Filter」を利用することに。
nkfコマンドをインストール
$ brew install nkf
とターミナルに入力。
これに関しては一度入力すればOK。次回からは不要なコマンドです。
現在のファイルの文字コードを確認
まず、ファイルがUTF-8かを確認するために下記のコマンドを書いてみます
$ nkf -g hogehoge.csv
これで、UTF-8の場合は問題ないのですが、大体これでShift-JISになっているのでは?
文字コードをUTF-8に変換
Shift-JISのファイルの場合、下記コマンドでUTF-8に変換することが可能
nkf -w --overwrite hogehoge.csv
作ったcsvを確認したところ、無事UTF-8に変換されていました。
再度プログラムを実行したら、うまくいったのでCSVの文字コードを疑う方がよいかも?
コメント