Pagina 1 di 1
column: read failed: Invalid or incomplete multibyte or wide
Inviato: lun 28 dic 2015, 19:20
da ZeroUno
Ho da poco cominciato ad usare il comando 'column' per formattare il testo.
Però sembra che gli dia fastidio quando si usano caratteri non utf-8, per esempio lettere accentate:
Codice: Seleziona tutto
# echo è|column
column: read failed: Invalid or incomplete multibyte or wide character
come si risolve?
[edit]
risolve, ma io non so a priori in che lingua è scritto il testo.
Re: column: read failed: Invalid or incomplete multibyte or
Inviato: lun 28 dic 2015, 20:12
da brg
Perché non usare UTF-8, visto che è lo standard e funziona con ogni lingua conosciuta? Per quanto riguarda il problema, credo che l'unica soluzione possibile sarebbe quella di leggere il LANG di sistema o qualcosa del genere:
Non è possible distinguere uno standard dall'altro guardando solo alla stringa.
Tuttavia a me funzionano comandi come:
Codice: Seleziona tutto
bash-4.2$ LC_CTYPE=it_IT echo è | column
è
bash-4.2$ LANG=it_IT echo è | column
è
bash-4.2$ LC_ALL=it_IT echo è | column
è
e non capisco che cosa ci sia di diverso con il tuo esempio, forse che la tua lingua di sistema non è UTF-8 ma il terminale
virtuale sì?
Re: column: read failed: Invalid or incomplete multibyte or
Inviato: mar 29 dic 2015, 12:44
da conraid
ZeroUno ha scritto:Però sembra che gli dia fastidio quando si usano caratteri non utf-8, per esempio lettere accentate:
ma le lettere accentate sono caratteri utf8. Cosa intendi per non utf8?
Re: column: read failed: Invalid or incomplete multibyte or
Inviato: mar 29 dic 2015, 12:54
da ZeroUno
mi sono confuso.
Di default è settato a "C" che credo sia tipo ascii 7bit.
Visto che non so a priori la lingua e anzi all'interno del testo possono esserci più lingue (il testo di cui mi sono accorto era in francese), ho messo LC_CTYPE=en_US e funziona. Credo che funzioni qualunque si metta che non sia a 7 bit.
Lo script è pubblico e può girare sul computer di persone di tutto il mondo. Considera poi che (almeno a me) $LANG non è settato per default, e dove lo è spesso faccio unset LANG per assicurarmi che l'output dei comandi non esca in italiano facendo fallire le grep.
Re: column: read failed: Invalid or incomplete multibyte or
Inviato: mar 29 dic 2015, 13:07
da conraid
c'è anche LANG=C.utf8 che funziona.
[SOLVED] Re: column: read failed: Invalid or incomplete mult
Inviato: mar 29 dic 2015, 23:35
da ZeroUno
conraid ha scritto:c'è anche LANG=C.utf8 che funziona.
ecco, è quello che cercavo (non sono esperto di codifiche)