我正在尝试导入日语的csv.这段代码:
url <- 'http://www.mof.go.jp/international_policy/reference/itn_transactions_in_securities/week.csv'
x <- read.csv(url, header=FALSE, stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)
返回以下错误:
Error in type.convert(data[[i]], as.is = as.is[i], dec = dec, na.strings = character(0L)) :
invalid multibyte string at '<91>?O<8b>y<82>??<e0><8f>?<94><94><84><94><83><8c>_<96>?@(<8f>T<8e><9f><81>E<8e>w<92><e8><95>@<8a>?x<81>[<83>X<81>j'
Run Code Online (Sandbox Code Playgroud)
我试图改变的编码(Encoding(url) <- 'UTF-8'和也为latin1),并试图除去read.csv参数,但在每种情况下接收相同的"无效多字节字符串"消息.是否有应使用不同的编码,或者是有一些其他的问题吗?
以下,当直接复制并粘贴到R中时可以正常工作:
> character_test <- function() print("R??????GNU S????????????????????????????????????...")
> character_test()
[1] "R??????GNU S??????????????,???????,?????????????..."
Run Code Online (Sandbox Code Playgroud)
但是,如果我创建一个名为character_test.R的文件,其中包含EXACT SAME代码,请将其保存为UTF-8编码(以便保留特殊的中文字符),然后当我在R中使用source()时,我收到以下错误:
> source(file="C:\\Users\\Tony\\Desktop\\character_test.R", encoding = "UTF-8")
Error in source(file = "C:\\Users\\Tony\\Desktop\\character_test.R", encoding = "utf-8") :
C:\Users\Tony\Desktop\character_test.R:3:0: unexpected end of input
1: character.test <- function() print("R
2:
^
In addition: Warning message:
In source(file = "C:\\Users\\Tony\\Desktop\\character_test.R", encoding = "UTF-8") :
invalid input found on input connection 'C:\Users\Tony\Desktop\character_test.R'
Run Code Online (Sandbox Code Playgroud)
您可以提供任何帮助以解决并帮助我理解这里发生的事情,我将不胜感激.
> sessionInfo() # Windows 7 Pro x64
R version 2.12.1 (2010-12-16)
Platform: x86_64-pc-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United Kingdom.1252 …Run Code Online (Sandbox Code Playgroud) R中是否有一种简单的方法来只提取HTML页面的文本元素?
我认为这被称为"屏幕抓取",但我没有它的经验,我只需要一种简单的方法来提取您在访问网址时通常在浏览器中看到的文本.
我有一个像下面这样的字符串:
str <- "????????"
Encoding(str) #returns "UTF-8"
Run Code Online (Sandbox Code Playgroud)
我把它写到磁盘:
write.table(str, file="chartest", quote=F, col.names=F, row.names=F)
Run Code Online (Sandbox Code Playgroud)
现在我看一下Notepadd ++中的文件,它设置为UTF-8而没有BOM编码,我得到了这个:
<U+3066><U+3044><U+305F><U+3060><U+3051><U+308B><U+306A><U+3089>
Run Code Online (Sandbox Code Playgroud)
这个过程出了什么问题?我希望书面文本文件显示出现在R中的字符串.
这是在Windows 7,R版本2.15
我在Windows 7 64位上使用R 2.15.0.我想将unicode(CJK)文本输出到文件.
以下代码显示了发送到UTF-8文件连接上的Unicode字符如何不能正常工作(I):
rty <- file("test.txt",encoding="UTF-8")
write("?", file=rty)
close(rty)
rty <- file("test.txt",encoding="UTF-8")
scan(rty,what=character())
close(rty)
Run Code Online (Sandbox Code Playgroud)
如扫描输出所示:
Read 1 item
[1] "<U+5728>"
Run Code Online (Sandbox Code Playgroud)
该文件不是用UTF字符本身编写的,而是某种符合ANSI标准的回退.我可以让它第一次正常工作(即使用其中包含"在"的文本文件),或者我可以使用一些额外的魔法将输出转换为Unicode,并使用正确的字符替换代码字符串吗?
谢谢.
[更多信息:相同的代码在Cygwin,R 2.14.2中正常运行,而Win7上的2.14.2也被破坏.这是在我的某个地方吗?]
我正在从MySQL数据库通过RJDBC读取文件,它正确显示R中的所有字母(例如,נווהשאנן).但是,即使使用write.csv和fileEncoding ="UTF-8"导出它,输出看起来像
<U+0436>.<U+043A>. <U+041B><U+043E><U+0437><U+0435><U+043D><U+0435><U+0446>(在这种情况下,这不是上面的字符串而是保加利亚字符串),用于保加利亚语,希伯来语,中文等等.其他特殊字符,如ã,ç等工作正常.
我怀疑这是因为UTF-8 BOM,但我没有在网上找到解决方案
我的操作系统是德语Windows7.
编辑:我试过了
con<-file("file.csv",encoding="UTF-8")
write.csv(x,con,row.names=FALSE)
Run Code Online (Sandbox Code Playgroud)
和(afaik)等价物write.csv(x, file="file.csv",fileEncoding="UTF-8",row.names=FALSE).
我正在使用R Studio,需要导入用于文本挖掘的csv文件.文件是windows-1252编码并包含德语变音符号.
但是我无法让R正确导入这些变形金刚.使用read.table(X,fileEncoding ="UTF-8")会导致错误.
我错过了什么?
---- ----更新
我试图阅读的文件是:https: //drive.google.com/file/d/0B4kGh2YwTmb9U3hkei1TTHlUME0/edit?usp=sharing
使用此R代码:
Sys.setlocale("LC_CTYPE", "german")
dataset <- read.table("../processed/DE_all_CDM_201405050001_DE_all_CDM2014-05-05_rcout.csv", encoding="UTF-8", header=TRUE, sep=";", stringsAsFactors=F, as.is=T)
dataset <- dataset[,c(1,11,30)]
Encoding(dataset[,2]) <- "UTF-8"