Nachdem ich alles über iconv
und Encoding
gelesen habe, bin ich immer noch verwirrt.
Ich kratze die Quelle eines Webseite Ich habe eine Zeichenfolge, die folgendermaßen aussieht: 'pretty\u003D\u003Ebig'
(wird in der R-Konsole als 'pretty\\u003D\\u003Ebig'
angezeigt). Ich möchte dies in die ASCII-Zeichenfolge konvertieren, die 'pretty=>big'
sein sollte.
Einfacher, wenn ich
einstelle %Vor% Wie führe ich eine Konvertierung für x
durch, um pretty=>big
zu erhalten?
Irgendwelche Vorschläge?
Obwohl ich Hong oois Antwort akzeptiert habe, kann ich nicht umhin zu denken, dass parse
und eval
eine schwergewichtige Lösung ist. Wie bereits erwähnt, ist es nicht sicher, obwohl ich für meine Anwendung sicher sein kann, dass ich keine gefährlichen Zitate bekomme.
Also habe ich einen alternativen, etwas brutalen Ansatz entwickelt:
%Vor%Alle Vereinfachungen sind willkommen!
Ich sympathisiere; Ich habe in der Vergangenheit mit R- und Unicode-Text gekämpft und nicht immer erfolgreich. Wenn Ihre Daten in x
sind, versuchen Sie zuerst eine globale Ersetzung, etwa so:
Ich benutze manchmal eine Konstruktion wie
%Vor%um zu sehen, wo die hohen Codepunkte z.B. alles über 150. Das hilft mir, Probleme zu finden, die zum Beispiel durch nicht-brechende Räume verursacht werden, die immer wieder auftauchen.
Der Trick dabei ist, dass '\u003D'
eigentlich 6 Zeichen lang ist, während Sie '\u003D'
wollen, was nur ein Zeichen ist. Der weitere Trick besteht darin, dass Sie zur Übereinstimmung mit diesen Backslashes zwei Backslashes verwenden müssen:
Um mehrere Zeichen durch ein Zeichen zu ersetzen, müssen Sie das gesamte Muster als Ziel auswählen. Sie können einen Backslash nicht einfach löschen. (Da Sie angegeben haben, dass dies ein allgemeineres Problem ist, könnte die Antwort vielleicht in Änderungen an Ihrer noch nicht beschriebenen Methode zum Herunterladen dieses Textes liegen.)
Wenn ich Ihre Funktionen und die Abhängigkeiten lade, funktioniert dieser Code:
%Vor%(Ich denke, ich bin im Anwendungsfall immer noch nicht klar.)
Tags und Links r unicode text-processing unicode-string iconv