Was ist der Unterschied zwischen Hex-Code (\ x) und Unicode (\ u)?

Von?Quotes:

\xnn   character with given hex code (1 or 2 hex digits)  
\unnnn Unicode character with given code (1--4 hex digits)

In dem Fall, in dem das Unicode-Zeichen nur eine oder zwei Ziffern hat, würde ich erwarten, dass diese Zeichen identisch sind. In der Tat ist 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!"

nter Linux sehe ich jedoch beim Versuch, ein Nummernzeichen zu drucken,

cat("\ua3")
## £
cat("\xa3")
## �

Das ist, das\x hex code wird nicht richtig angezeigt. (Dieses Verhalten blieb bei jedem Gebietsschema bestehen, das ich ausprobiert habe.) Unter Windows 7 zeigen beide Versionen ein Nummernzeichen.

Wenn ich in eine Ganzzahl konvertiere und zurück, wird das Nummernzeichen unter Linux korrekt angezeigt.

cat(intToUtf8(utf8ToInt("\xa3")))
## £

Übrigens funktioniert das unter Windows nicht, dautf8ToInt("\xa3") kehrt zurückNA.

Etwas\x Zeichen geben @ zurüNA unter Windows, aber unter Linux einen Fehler auslösen. Beispielsweise

utf8ToInt("\xf0")
## Error in utf8ToInt("\xf0") : invalid UTF-8 string

("\uf0" ist ein gültiges Zeichen.)

Diese Beispiele zeigen, dass es einige Unterschiede zwischen @ gib\x und\u Formen von Zeichen, die anscheinend betriebssystemspezifisch sind, bei deren Definition ich jedoch keine Logik erkennen kann.

Was ist der Unterschied zwischen diesen beiden Zeichenformen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage