5

Unicode を漢字に変換するスクリプトを以下に作成しました。最後の文字列temp.df[,"name_unicode"]は "§®£" (引用符なし) であるため、中国語を知らない人も役立ちます。

library(RODBC)
library(Unicode)

temp.df <- data.frame(name_unicode=c("&#38515;&#22823;&#25991;",
                                     "&#38515;&#23567;&#25935;",
                                     "&#38515;&#19968;&#23665;",
                                     "&#167;&#174;&#163;"),
                      stringsAsFactors=FALSE)

temp.df[,"name_unicode_mod"] <- sapply(temp.df[,"name_unicode"],
                                        function(x) {
                                          temp <- unlist(strsplit(x,";"))
                                          temp <- sprintf("%x",as.integer(gsub("[^0-9]","",temp)))
                                          temp <- intToUtf8(as.u_char_range(temp))
                                          return(temp)
                                          })


write.csv(temp.df,file("test.csv",encoding="UTF-8"),row.names=FALSE)

temp.df[,"name_unicode_mod"]Rコンソールの出力はOKです。csvしかし、私はそれらをまたはxls形式でエクスポートする必要があります。write.csv、、でwrite.table試しましodbcConnectExcelRODBCが、すべてのようなものが得られます<U+00A7><U+00AE><U+00A3>

誰でも助けることができますか?ありがとう。

PS R 3.0.0 と Win7 を使用しています

4

1 に答える 1

5

あなたのケースでは、バイナリ書き込みを使用するとうまくいきます。以下は実行する小さなサンプル コードです。

writeUtf8csv <- function(x, file) {
  con <- file(file, "wb")
  apply(x, 1, function(a) {
      b <- paste(paste(a, collapse=','), '\r\n', sep='')
      writeBin(charToRaw(b), con, endian="little")
    })
  close(con)
}

詳細については、このリファレンス ページを参照してください。

于 2013-04-18T12:46:37.973 に答える