2016-07-29 23 views
0

Quelle nach der Lösung here Ich versuche, ein Skript, das akzentuierte Zeichen ersetzt implementieren. aber meinen Code auf der Konsole der Ausführung funktioniert gut, wenn ich diesen Code ausführen:Kann Skript nicht mit seltenen Zeichen in RStudio

x <- list('ÿ'='y') 

von einer RStudio Skript R der folgenden Fehler zurück:

source('~/R/DrivingDataAnalysis/R/WebScraper/VoltstatsScraper.R', encoding = 'UTF-8') Error in source("~/TestScript.R", : ~/TestScript.R:1:6: unexpected INCOMPLETE_STRING 1: list(' ^

für andere akzentuierte Zeichen wie in der Verbindung R das Skript parst . Wie kann ich das in einem Skript erledigen? Ich verwende R 3.3.1 und RStudio 0.99.896 auf Windows 7.

+0

ich dieses Problem nicht replizieren kann auf RStudio 0.99.1266 (Vorschau) . Sieht so aus, als ob UTF-8-Kodierung in 0,99.903 eingeführt wurde (siehe https://support.rstudio.com/hc/en-us/articles/200532197-Character-Encoding), so dass Sie möglicherweise nur Ihre Version von RStudio – Phil

+0

aktualisieren müssen Danke für Ihre Hilfe. Durch die Aktualisierung von RStudio auf 0.99.903 wurde das Problem behoben, wenn die Codierung auf ISO-8859-1 festgelegt wurde. Bei der herkömmlichen UTF-8-Codierung bleibt das Problem jedoch bestehen. Haben Sie versucht, die Codierung auf "UTF-8" zu setzen, um den Fehler zu reproduzieren? Das Setzen der Codierung, d.h. auf WINDOWS-1252, erzeugt diesen Fehler. –

+1

Nicht-ASCII-Zeichen + R + Windows == Sie werden eine schlechte Zeit haben. –

Antwort

1

zu einer Antwort mein Kommentar Konvertieren, weil ich denke, es ist Ihr Problem zu beheben:

  • Stellen Sie sicher, dass Ihr Skript in UTF-8 codiert wird . Everything else is madness.
  • Statt source zu verwenden, die im Grunde nicht funktioniert, verwenden

    eval(parse('your/file.r', encoding = 'UTF-8')) 
    

    This works as a substitute for source. Wie die verknüpfte Antwort erklärt, der Grund dafür ist, dass source versucht (und nicht), um die UTF- zu konvertieren 8-codierte Zeichen, während parse keine Transformation durchführt; Stattdessen lädt es die Zeichenfolge wörtlich aus der Datei und markiert sie einfach als UTF-8-codiert.

Leider ist dieses Sie dies manuell zu tun haben, unter der Annahme, dass RStudio der „Quelle“ Taste verwendet source anstatt die oben Abhilfe intern.


Andere Unicode-Transformationen könnte Sinn machen, aber sind - soweit ich weiß - nicht durch R. unterstützt

+0

danke für deine ausführliche Erklärung des Problems und der damit verbundenen Probleme! –