2016-05-17 25 views
0

ファイルをダウンロードしてRにロードしようとしていますが、動作しません。 私はMAC上でRを使用しています。3.1.3MACのエンコーディングの問題

ファイルはcsv形式です(json形式のオプションがあります)。

ここではファイル(CSVおよびJSON)のためのURL:私は、ファイルをダウンロードし、ローカルのテキストエディタで開いて、UTF-8として保存してから、Rにインポートすることができます知っている http://dadosabertos.dataprev.gov.br/opendata/con02/formato=csv http://dadosabertos.dataprev.gov.br/opendata/con02/formato=json

は、しかし、私はより自動化されたソリューションを望んでいます。これは、別のソフトウェアを使用することを伴わないものです。そして、btw、このソリューションでも私が期待したほど簡単には動作しません。

これまで私が試したことは次のとおりです。 ファイルはポルトガル語なので、おそらくutf-8です。

library(jsonlite) 
options(encoding = "utf-8") 
url <- "http://dadosabertos.dataprev.gov.br/opendata/con02/formato=json" 
prev <- fromJSON(url) 

、エラーメッセージ:

字句エラー:UTF8文字列に無効なバイト。 :[{"ノード":{"Ano": "1988"、 "Esp cie": "42-Ap TempoContribui o (右)------^

試してみました URL1 < - "http://dadosabertos.dataprev.gov.br/opendata/con02/formato=csv" 前< - read.csv(URL、9月= "")

しかし、それはまた、私は使用することも試みた動作しませんでした:。

Sys.setlocale("LC_ALL", 'en_US.UTF-8') 

しかし、それは何の違いも生じなかった。

答えて

1

少なくともcsvのバージョンは、UTF-8ではなくISO-8859-1にあるようです。

$ curl -I "http://dadosabertos.dataprev.gov.br/opendata/con02/formato=csv" 
HTTP/1.1 200 OK 
Set-Cookie: ACE_STICKY=R835601189; path=/; expires=Thu, 19-May-2016 00:43:56 GMT 
Server: nginx/1.2.4 
Date: Wed, 18 May 2016 00:27:45 GMT 
Content-Type: text/plain; charset=ISO-8859-1 
Connection: keep-alive 
X-Powered-By: PHP/5.3.3 
Content-Disposition: attachment; filename="CON02.csv"; 
Access-Control-Allow-Origin: * 

、その内容を見てから、それが正しいように見える:あなたはこのようにContent-Typeをチェックする curlコマンドを使用することができます。私はrのエンコーディングオプションに精通していませんが、オプション(encoding = "ISO-8859-1")を設定して何が起こるかを見てください。

1

私はこの方法を行うことによって、それを解決:

url<-"http://dadosabertos.dataprev.gov.br/opendata/act10/formato=json" 
a<-readLines(file(url, encoding="ISO-8859-1"), warn=FALSE) 
prev<-fromJSON(a) 
関連する問題