Von ?Quotes
:Was ist der Unterschied zwischen Hex-Code ( x) und Unicode ( u) Zeichen?
\xnn character with given hex code (1 or 2 hex digits) \unnnn Unicode character with given code (1--4 hex digits)
In dem Fall, dass die Unicode-Zeichen nur ein oder zwei Ziffern haben, würde ich diese Charaktere erwartet, dass das gleiche sein. In der Tat, eines der Beispiele auf der ?Quotes
Hilfeseite zeigt:
"\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21"
## [1] "Hello World!"
"\u48\u65\u6c\u6c\u6f\u20\u57\u6f\u72\u6c\u64\u21"
## [1] "Hello World!"
jedoch unter Linux, wenn ein Pfund-Zeichen zu drucken versuchen, ich sehe
cat("\ua3")
## £
cat("\xa3")
## �
Das heißt, den \x
Hex-Code wird nicht korrekt angezeigt. (Dieses Verhalten wurde bei allen Ländereinstellungen beibehalten, die ich ausprobiert habe.) Unter Windows 7 wird in beiden Versionen ein Nummernzeichen angezeigt.
Wenn ich in Integer und zurück umwandel, dann wird das Pfundzeichen korrekt unter Linux angezeigt.
cat(intToUtf8(utf8ToInt("\xa3")))
## £
übrigens diese unter Windows nicht funktioniert, da utf8ToInt("\xa3")
kehrt NA
.
Einige \x
Zeichen geben NA
unter Windows zurück, aber werfen einen Fehler unter Linux. Zum Beispiel:
utf8ToInt("\xf0")
## Error in utf8ToInt("\xf0") : invalid UTF-8 string
("\uf0"
ist ein gültiges Zeichen.)
Diese Beispiele zeigen, dass es einige Unterschiede zwischen \x
und \u
Formen der Zeichen, die scheinen OS-spezifisch zu sein, aber ich kann‘ Ich sehe keine Logik in ihrer Definition.
Was sind die Unterschiede zwischen diesen beiden Zeichenformen?
Das C# ist, aber es kann Ihnen helfen, da es die gleiche Frage: http://stackoverflow.com/questions/32175482/what-is-the-difference-between-using -u-and-x-while-representation-character-lite – etienne
@etienne Ich wäre nicht überrascht, wenn eine ausführliche Wiki-Antwort von Richie selbst in Kürze folgen würde. –
@DavidArenburg: Nein, er hat nur diese Frage getwittert, also muss er ratlos sein. :) –