¿Cuál es la diferencia entre el código hexadecimal (\ x) y los caracteres unicode (\ u)?

De?Quotes:

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

En el caso en que el carácter Unicode tenga solo uno o dos dígitos, esperaría que estos caracteres sean los mismos. De hecho, uno de los ejemplos en el?Quotes la página de ayuda muestra:

"\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!"

Sin embargo, en Linux, cuando intento imprimir un signo de libra, veo

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

Eso es el\x el código hexadecimal no se muestra correctamente. (Este comportamiento persistió con cualquier configuración regional que probé). En Windows 7, ambas versiones muestran un signo de almohadilla.

Si convierto a entero y viceversa, el signo de libra se muestra correctamente en Linux.

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

Por cierto, esto no funciona en Windows, ya queutf8ToInt("\xa3") devolucionesNA.

Algunos\x regreso de personajesNA bajo Windows pero arroja un error bajo Linux. Por ejemplo:

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

("\uf0" es un personaje válido).

Estos ejemplos muestran que hay algunas diferencias entre\x y\u formas de caracteres, que parecen ser específicas del sistema operativo, pero no puedo ver ninguna lógica en cómo se definen.

¿Cuál es la diferencia entre estas dos formas de caracteres?

Respuestas a la pregunta(1)

Su respuesta a la pregunta