Wie kann man die () .R-Datei mit der UTF-8-Codierung speichern?
Den folgenden, wenn Sie kopiert und eingefügt, direkt in R funktioniert:
> character_test <- function() print("R同时也被称为GNU S是一个强烈的功能性语言和环境,探索统计数据集,使许多从自定义数据图形显示...")
> character_test()
[1] "R同时也被称为GNU S是一个强烈的功能性语言和环境,探索统计数据集,使许多从自定义数据图形显示..."
Jedoch, wenn ich eine Datei namens character_test.R mit den EXAKT GLEICHEN code, speichern Sie Sie in UTF-8-Codierung (so behalten Sie die Besondere chinesische Zeichen), wenn ich dann bei Quelle() in R, bekomme ich die folgende Fehlermeldung:
> 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'
Jede Hilfe, die Sie anbieten können, die in die Lösung und hilft mir, zu verstehen, was hier Los wäre sehr geschätzt werden.
> 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
[2] LC_CTYPE=English_United Kingdom.1252
[3] LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United Kingdom.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
loaded via a namespace (and not attached):
[1] tools_2.12.1
und
> l10n_info()
$MBCS
[1] FALSE
$`UTF-8`
[1] FALSE
$`Latin-1`
[1] TRUE
$codepage
[1] 1252
Kommentar zu dem Problem
Gut, es scheint gut zu funktionieren hier. Ich betreibe Linux mit UTF-8-Gebietsschema. Vielleicht ist das problem kommt von der Ländereinstellung auf Ihrem system. Haben Sie versucht, es zu ändern, um eine UTF-8 ?
Arbeitet auf MacOS 10.6.6 als gut.
@juba, Wie würde ich mich über die änderung von R auf windows, um ein UTF-8-lokale?
Gut, meine Windows-Kenntnisse Recht begrenzt, aber vielleicht können Sie einen Blick auf die
Sys.setlocale
R-Funktion, und einige Informationen in der R installation and administration guide : cran.r-project.org/doc/manuals/R-admin.html#Locales @juba - vielen Dank, aber auch nach einem Blick auf die sonst eher ein nützliches Dokument, ich kann nicht sehen, wie es um eine utf-8-lokale.
InformationsquelleAutor der Frage Tony Breyal | 2011-02-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sprachen wir über diese eine Menge in den Kommentaren zu meinem vorherigen post, aber ich glaube nicht, dass dies verloren geht auf Seite 3 der Kommentare: setzen Sie das Gebietsschema, es funktioniert mit Eingang von der R-Konsole (siehe screenshot in den Kommentaren) als auch mit der Eingabe von Datei-siehe dieser screenshot:
Die Datei "myfile.r" enthält:
Enthält die Konsole:
Beachten Sie, dass die Datei-in schlägt fehl, und es verweist auf den gleichen Charakter wie der original-poster den Fehler (den man nach "R). Ich kann dies nicht mit Chinesisch, da hätte ich zum installieren von "Microsoft Pinyin IME 3.0", aber der Prozess ist der gleiche, Sie ersetzen nur das Gebietsschema "Chinesisch" (die Namensgebung ist ein wenig inkonsistent, konsultieren Sie die Dokumentation).
InformationsquelleAutor der Antwort Bernd Elkemann
R/Windows
source
läuft in Probleme mit UTF-8-Zeichen enthalten, können nicht dargestellt werden, die im aktuellen Gebietsschema (oder ANSI-Codepage in Windows-speak). Und leider Windows nicht UTF-8 als ANSI-Codepage--Windows hat eine technische Einschränkung, dass der ANSI-code der Seiten kann nur ein - oder zwei-byte-pro-Zeichen-Kodierungen, die nicht-variable-byte-Kodierungen wie UTF-8.Scheint dies nicht zu sein, eine fundamentale, unlösbare problem-da gibt es nur etwas falsch mit der
source
Funktion. Erhalten Sie 90% der Weg dorthin, indem Sie diese statt:Diese arbeiten werden fast genau wie
source()
mit Standard-Argumente, aber lassen Sie nicht tun, echo=T, eval.print=T, etc.InformationsquelleAutor der Antwort Joe Cheng
Mir (auf windows) ich:
Funktioniert es einwandfrei.
InformationsquelleAutor der Antwort crow16384
Denke ich, liegt das problem mit R. ich kann glücklich Quelle UTF-8-Dateien oder UCS-2LE Dateien mit vielen nicht-ASCII-Zeichen in. Aber einige Zeichen verursachen. Zum Beispiel die folgenden
ist in Ordnung in beiden UTF-8 und UCS-2LE ohne die russische Linie. Aber wenn das enthalten ist, dann scheitert es. Ich bin mit dem finger auf R. Ihre chinesischen text scheint auch zu hart für R auf Windows.
Locale scheint hier irrelevant. Es ist nur eine Datei, die Sie sagen, welche Codierung die Datei ist, deshalb sollten Sie Ihre locale Bedeutung?
InformationsquelleAutor der Antwort David Heffernan
Unter windows, beim kopieren-einfügen-unicode-oder utf-8-codierten string in ein text-Steuerelement, das eingestellt ist, um single-byte-Eingang (ascii... je nach locale), das unbekannte Byte wird ersetzt durch Fragezeichen. Wenn ich die ersten 4 Zeichen des Strings und kopieren-einfügen " in z.B. Notepad und speichern Sie es dann, die Datei wird in hex:
was Sie tun müssen ist, finden Sie einen editor, mit dem Sie festlegen können, um utf-8 vor kopieren-einfügen in den text, dann die gespeicherte Datei (Ihrer ersten 4 Zeichen) wird zu:
Diese wird dann als gültig anerkannt, utf-8, indem Sie [R].
Habe ich "Notepad2" für den Versuch, aber ich bin sicher, es gibt viele mehr.
InformationsquelleAutor der Antwort Bernd Elkemann
Ich dieses problem auftreten, wenn Sie versuchen, um zu einer Quelle wird .R-Datei mit einigen chinesischen Schriftzeichen. In meinem Fall habe ich festgestellt, dass lediglich "LC_CTYPE" , "Chinesisch" ist nicht genug. Aber die Einstellung "LC_ALL" , "Chinesisch" funktioniert gut.
Beachten Sie, dass es nicht genug, um die Codierung Recht, wenn Sie Lesen oder schreiben, nur-text-Datei in Rstudio (oder R?) mit nicht-ASCII-Zeichen. Die locale-Einstellung zählt auch.
PS. der Befehl Sys.setlocale(category = "LC_CTYPE",locale = "Chinesisch"). Bitte ersetzen Sie die Gebietsschema-Wert entsprechend.
InformationsquelleAutor der Antwort user2473519
Gebäude auf crow ' s Antwort, diese Lösung macht
RStudio
'sSource
button funktioniert.Beim schlagen, dass
Source
SchaltflächeRStudio
führtsource('myfile.r', encoding = 'UTF-8')
), so überschreibensource
lässt den Fehler verschwinden und läuft der code wie erwartet:InformationsquelleAutor der Antwort Domi