2012-01-30 7 views
2

私はhtmlParseをヘブライ語でうまく動作させたいと思っていますが、ヘブライ語のテキストをページに埋め込むことができます。例えばヘブライ語で働くためにhtmlParseを取得するには?

:これらの

# why can't I parse the Hebrew correctly? 
library(RCurl) 
library(XML) 
u = "http://humus101.com/?p=2737" 
a = getURL(u) 
a # Here - the hebrew is fine. 
a2 <- htmlParse(a) 
a2 # Here it is a mess... 

どれもそれを修正するように見えるん:

htmlParse(a, encoding = "utf-8") 
htmlParse(a, encoding = "iso8859-8") 

これは私のロケールです:

> Sys.getlocale() 
[1] "LC_COLLATE=Hebrew_Israel.1255;LC_CTYPE=Hebrew_Israel.1255;LC_MONETARY=Hebrew_Israel.1255;LC_NUMERIC=C;LC_TIME=Hebrew_Israel.1255" 
> 

任意の提案ですか?

+0

私はUTF-8ロケールであり、 'htmlParse(a、encoding =" utf- 8 ")'うまく動作します。 –

+0

ハイ・ヴィンセント、あなたはあなたが使っているロケールを書いてください。 –

+0

私はen_GB.UTF-8: 'LC_CTYPE = en_GB.UTF-8; LC_NUMERIC = C; LC_TIME = en_GB.UTF-8; LC_COLLATE = en_GB.UTF-8; LC_MONETARY = en_GB.UTF-8; LC_MESSAGES = en_GBを使用します。 UTF-8; LC_PAPER = C; LC_NAME = C; LC_ADDRESS = C; LC_TELEPHONE = C; LC_MEASUREMENT = en_GB.UTF-8; LC_IDENTIFICATION = C'。 –

答えて

1

getURLhtmlParseの両方の呼び出しで、UTF-8エンディングを指定します。

a <- getURL(u, .encoding = "UTF-8") 
htmlParse(a, encoding = "UTF-8") 

これらのロケールの問題は常にの下に取得する痛みです。私がcat(a)UTF-8エンコーディングをgetURLに指定した後)と入力すると、he.wrodpress.orgページがUTF-8であると主張しているようですが、ヘブライビットはUTF-16です。つまり、彼らは<U+05D3><U+05E6><U+05DE><U+05D1><U+05E8>のように見えます。したがって、そのWebページのオンココードが混在しているために問題になる可能性があります。

いくつかのエンコーディングを比較すると、私のマシン上で不器用なものが生成されるのは、UTF-8だけです。それは必死に取得した場合

(trees <- lapply(c("UTF-8", "UTF-16", "latin1"), function(enc) 
{ 
    a <- getURL(u, .opts = proxy_opts, .encoding = enc) 
    htmlParse(a, encoding = enc) 
})) 

、上記のコードでlapply、可能なcondingsのいずれかがあなたのために働くかどうかを確認するためにiconvlist()を渡します。

+0

こんにちはリッチー、これを見てくれてありがとう! 私はこのように実行しようとしたとき、私はまだヘブライ語に問題がありました(私は別の混乱を得ましたが)。ヘブライ語の一部のテキストの例を次に示します。׳₪׳•׳¢׳ ׳¢׳ WordPress.

関連する問題