2017-05-28 10 views
3

英語と英語の両方のコンテンツ(英語以外)を含むWebサイトからデータをダウンロードしようとしています。私は英語で書かれたデータを入手することができましたが、現地語の内容については以下のようになりました。私の質問は、どのように私は両方を表示するのですか?内容をローカル言語で表示する:R

X1 X2 X3 
NA  
1 <U+0926><U+094B><U+0932><U+0916><U+093E> <U+0915><U+093E><U+0932><U+093F><U+0928><U+094D><U+091A><U+094B><U+0915> <U+0917><U+093E><U+0909><U+0901><U+092A><U+093E><U+0932><U+093F><U+0915><U+093E> 
2 <U+0926><U+094B><U+0932><U+0916><U+093E> <U+0915><U+093E><U+0932><U+093F><U+0928><U+094D><U+091A><U+094B><U+0915> <U+0917><U+093E><U+0909><U+0901><U+092A><U+093E><U+0932><U+093F><U+0915><U+093E> 
3 <U+0926><U+094B><U+0932><U+0916><U+093E> <U+0915><U+093E><U+0932><U+093F><U+0928><U+094D><U+091A><U+094B><U+0915> <U+0917><U+093E><U+0909><U+0901><U+092A><U+093E><U+0932><U+093F><U+0915><U+093E> 
4 <U+0926><U+094B><U+0932><U+0916><U+093E> <U+0915><U+093E><U+0932><U+093F><U+0928><U+094D><U+091A><U+094B><U+0915> <U+0917><U+093E><U+0909><U+0901><U+092A><U+093E><U+0932><U+093F><U+0915><U+093E> 
5 <U+0926><U+094B><U+0932><U+0916><U+093E> <U+0915><U+093E><U+0932><U+093F><U+0928><U+094D><U+091A><U+094B><U+0915> <U+0917><U+093E><U+0909><U+0901><U+092A><U+093E><U+0932><U+093F><U+0915><U+093E> 
6 <U+0926><U+094B><U+0932><U+0916><U+093E> <U+0915><U+093E><U+0932><U+093F><U+0928><U+094D><U+091A><U+094B><U+0915> <U+0917><U+093E><U+0909><U+0901><U+092A><U+093E><U+0932><U+093F><U+0915><U+093E> 
7 <U+0926><U+094B><U+0932><U+0916><U+093E> <U+0915><U+093E><U+0932><U+093F><U+0928><U+094D><U+091A><U+094B><U+0915> <U+0917><U+093E><U+0909><U+0901><U+092A><U+093E><U+0932><U+093F><U+0915><U+093E> 
8 <U+0926><U+094B><U+0932><U+0916><U+093E> <U+0915><U+093E><U+0932><U+093F><U+0928><U+094D><U+091A><U+094B><U+0915> <U+0917><U+093E><U+0909><U+0901><U+092A><U+093E><U+0932><U+093F><U+0915><U+093E> 
9 <U+0926><U+094B><U+0932><U+0916><U+093E> <U+0915><U+093E><U+0932><U+093F><U+0928><U+094D><U+091A><U+094B><U+0915> <U+0917><U+093E><U+0909><U+0901><U+092A><U+093E><U+0932><U+093F><U+0915><U+093E> 
10 <U+0926><U+094B><U+0932><U+0916><U+093E> <U+0915><U+093E><U+0932><U+093F><U+0928><U+094D><U+091A><U+094B><U+0915> <U+0917><U+093E><U+0909><U+0901><U+092A><U+093E><U+0932><U+093F><U+0915><U+093E> 

答えて

4

あなたはおそらくテキストが間違って表示されている可能性があります。

問題を再現できます。あなたのサンプルデータは同じ文字列を10回持っていました。 ディスプレイを合理的に保つために、私は3回だけ繰り返しています。

## Hex codes from your example 
S1 = c("0926", "094B", "0932", "0916", "093E") 
S2 = c("0915", "093E", "0932", "093F", "0928", "094D", "091A", "094B", "0915") 
S3 = c("0917", "093E", "0909", "0901", "092A", "093E", "0932", "093F", "0915", "093E") 

## Convert to Devanagari strings 
X1 = rep(intToUtf8(strtoi(S1, base=16L)), 3) 
X2 = rep(intToUtf8(strtoi(S2, base=16L)), 3) 
X3 = rep(intToUtf8(strtoi(S3, base=16L)), 3) 

df = data.frame(X1, X2, X3, stringsAsFactors=FALSE) 

は今 X1が正しく表示されますが、 df

奇妙な話ですが、df$X1df[,1]は、Unicode、 が表示されますしませんが、df[1, ]はしません。

as.matrix(df)は、ユニコード文字として をすべて表示します。

これは明らかにWindows版のRGuiの既知のバグです。 この他のいくつかの探求は、この Earlier SO Question で発見することができますし、読み込み可能なUnicodeのファイルにこれらの文字列を書くこのMailing List Post

補遺

は、いくつかの注意が必要です。 これは私の例のためのcsvファイルを作成しました。

Mat = as.matrix(df) 
F <- file("Test1.csv", "wb", encoding="UTF-8") 
BOM <- charToRaw('\xEF\xBB\xBF') 
writeBin(BOM, F) 
for(r in 1:nrow(Mat)) { 
    Line = paste(Mat[r,], collapse=",") 
    writeLines(Line, F, useBytes=T) 
} 
close(F) 
+0

ありがとうございました。どのように行列を保存してコンソール上だけでなく保存されたファイル(例:csv)にも文字を表示できるようにするにはどうすればよいですか? – user227710

+1

コメントがあまりにも複雑です。答えに追加する。 – G5W