codifica ssh e carattere


16

Quando sshentro nel mio VPS, ho irssieseguito sullo schermo. Quando qualcuno invia un personaggio unicode (come © o €), irssivisualizza la spazzatura quando lo uso tramite lo schermo in una sshsessione. Se mi collego a quello irssiutilizzando il modulo proxy di irssi, da irssi in esecuzione sul mio computer locale, viene visualizzato correttamente.

Allo stesso modo, se eseguo ghci sul mio VPS (fuori dallo schermo) e entro in uno di quei personaggi, si blocca.

Quindi, ovviamente, c'è un problema di codifica dei caratteri di qualche tipo con la mia connessione al mio VPS, sia in ssh che nell'installazione del sistema.

Come posso scoprire cosa sta causando questo e risolverlo?

Dettagli:

Sistema client

  • Arch Linux x64
  • Codifica UTF-8

Sistema VPS

  • Ubuntu Server 10.04
  • Codifica sconosciuta utilizzata. Come trovo questo? (Devo solo cercare nel mio /etc/rc.conf per Arch)

Risposte:


18

L'esecuzione del localecomando ti darà informazioni sulle tue impostazioni locali; la codifica dei caratteri è data LC_CTYPEdall'impostazione.

Sotto Ubuntu, vengono fornite le impostazioni locali predefinite /etc/default/locale. È possibile modificare la codifica dei caratteri impostando il LC_CTYPEproprio ~/.profilesul VPS, ad es

export LC_CTYPE=en_US.UTF-8

Dovrai assicurarti che le en_US.UTF-8impostazioni internazionali siano disponibili. Ubuntu genera solo i dati delle impostazioni locali per le impostazioni locali richieste. Tutte le versioni locali inglesi dovrebbero essere disponibili se il pacchetto è language-pack-en-baseinstallato. Puoi richiedere manualmente la loro generazione con

sudo locale-gen en

È inoltre possibile aggiungere voci per /var/lib/locales/supported.d/localassicurarsi che sia installata una determinata locale (ad esempio, aggiungere la riga en_US.UTF-8 UTF-8).


3

in realtà il valore fornito in LC_CTYPE è un nome di locale . È consuetudine, ma non obbligatorio, che la codifica del set di caratteri sia nel nome.

Ma se vuoi conoscere sicuramente il set di caratteri, allora il comando è locale -k charmap.

~$ LC_CTYPE=C locale -k charmap
charmap="ANSI_X3.4-1968"
~$ LC_CTYPE=fr_BE locale -k charmap
charmap="ISO-8859-1"

(nota come il set di caratteri non appare sui valori LC_TYPE sopra).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.