Escribir caracteres especiales en el portapapeles con la línea de comando.


3

Estoy tratando de escribir la cadena あいうえお a mi portapapeles usando el copia impresa herramienta de línea de comandos como esta

echo あいうえお | pbcopy

Pero lo que estoy recibiendo en mi portapapeles es completamente diferente: „ÅÇ„ÅÑ„ÅÜ„Åà„Åä.

Supuse que esto tenía algo que ver con la codificación, pero la documentación dice que la codificación se basa en la variable de entorno LANG y la mía está configurada para en_EN.UTF-8.

Respuestas:


3

Creo que su LANG=en_EN.UTF-8 es el problema.

Cuando ejecuto este comando

printf あいうえお | LANG=en_EN.UTF-8 pbcopy

y pegar en un nuevo TextEdit documento que recibo „ÅÇ„ÅÑ„ÅÜ„Åà„Åä (Por cierto, esto es lo que obtienes si tomas la codificación UTF-8 de tu texto original y la descodificas como MacRoman; deberías poder verificar esto haciendo printf あいうえお | iconv -f macroman ).

Cuando ejecuto este comando

printf あいうえお | LANG=en_US.UTF-8 pbcopy

y pegar en un nuevo TextEdit documento que recibo あいうえお, tal como uno esperaría.


Estoy bastante seguro de que en_EN.UTF-8 no es un local válido (por lo tanto pbcopy está por defecto en MacRoman). Tal vez quisiste usar en_US.UTF-8 (es decir. USno EN )? Puede enumerar los locales válidos ejecutando locale -a. Si solo está interesado en las configuraciones regionales de UTF-8 en inglés, puede filtrar la lista de esta manera:

locale -a | grep '^en_.*\.UTF-8$'

Bueno eso funcionó. No sé por qué mi LANG era en_EN en lugar de en_US. Ni siquiera se dio cuenta de que eso podría ser un problema.
Louis Boux

0

Más que probable es su terminal. Ingrese el comando locale y ver lo que dice allí. Si no enumera alguna codificación japonesa, eso es probablemente lo que es. Además, intente seleccionar "Unicode (UTF-8)" como la codificación de caracteres de Preferencias ..., Configuración, Avanzada, Internacional. También juegue con Preferencias / Codificaciones, habilitando las codificaciones japonesas (¿es ese japonés? Idk! LOL).

También asegúrese de establecer LANGUAGE="en_US.UTF-8" en su .bash_profile si no aparece cuando usa el locale mando.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.