Caratteri UTF8 nel terminale bash di Windows 10


36

Ho installato la nuova shell bash su Windows 10. La sto usando insieme a ZSH. Tuttavia, nessuno dei caratteri utf8 funziona, appaiono come blocchi quadrati. Come abilito la codifica dei caratteri utf8 nella shell di default? È possibile?


5
Se ogni carattere appare come un blocco quadrato, allora UTF-8 funziona già; è il carattere a cui manca il supporto Unicode.
Grawity

usare chcp 65001per cambiare la tabella codici in UTF-8 e cambiare il carattere in Consolas
phuclv

Sono passato al SimSun-Ext Bcarattere e tutti i caratteri vengono visualizzati correttamente.
Ryan Foley,

5
@grawity Stavo usando uubntu mono e ora sono passato a console. Invece di una scatola quadrata vuota ottengo una scatola quadrata con un punto interrogativo all'interno. Ho anche provato il suggerimento chcp ma è già impostato sulla codifica UTF-8 quando ho controllato le proprietà.
Ortix92,

2
Vorrei sottolineare che questo problema non è ancora risolto e che non riesco ancora a visualizzare correttamente i caratteri Unicode utf8 utilizzando ZSH
Ortix92

Risposte:


12

Fare clic con il tasto destro sulla barra del titolo nella parte superiore della finestra bash, selezionare le proprietà della voce. Nella finestra di apertura è presente una scheda in cui è possibile modificare il carattere. Ho cambiato il carattere in "Source Code Pro" e la dimensione 14.

Sembra buono e tutti i personaggi di utf-8 stanno funzionando.


Questa è la vera risposta. Puoi scegliere il tipo di carattere che preferisci supportando UTF8. Ho installato Menlo e poi ho dimenticato di cambiarlo nelle opzioni bash, onestamente non ci ho nemmeno pensato.
StalkAlex,

Si noti che ho provato tutte le opzioni predefinite in Windows (incluso Source Code Pro) e il segno di spunta (✔) ha funzionato solo per me con il carattere "DejaVu Sans Mono" suggerito da @ user3599934!
Sevron,

10

Per aggiungere alla risposta di Doctorj, ci sono un paio di caratteri installati per impostazione predefinita che è possibile utilizzare (sulla shell bash di Windows 10).

Lingue testate: bulgaro, ucraino, cinese semplificato, cinese tradizionale, danese, francese, tedesco, italiano, giapponese, kazako, coreano, macedone, mongolo, norvegese, polacco, portoghese, russo, serbo, spagnolo, svedese.

I seguenti caratteri predefiniti mostrano tutti i caratteri osservati:

  • MS Gothic
  • NSimSun
    • Non sembra mostrare tutto il kazako.
  • SimSun-ExtB (carattere raster) - La mia raccomandazione

Sia MS Gothic che NSimSun

  • Distanzia lingue non latine non CJK (cinese, giapponese, coreano) (macedone, kazako, bulgaro).
  • Ha uno strano offset verticale su caratteri latini accentati (á, é).
  • Non ha mostrato almeno un personaggio macedone.

SumSun-ExtB (carattere raster):

  • C'è un messaggio di avviso che dice che i caratteri Raster potrebbero non essere visualizzati correttamente.
  • La maggior parte dei caratteri viene visualizzata in modo scuro (potrebbe essere un problema con scarsa luminosità dello schermo).
  • I caratteri non ASCII sono luminosi, rispetto ai caratteri ASCII (possibile soluzione, utilizzare l'opzione grassetto).
  • I caratteri di tutte le lingue si avvicinano (è più facile vedere la spaziatura tra le parole).
  • Sembra più affidabile per le lingue non latine non CJK.

Con uno di questi caratteri, sia Prompt dei comandi che PowerShell, accadono cose strane quando si fa clic su caratteri non ASCII, anche se torna alla normalità quando si evidenzia il testo.

Per installare un font: Nota che devi cambiare il font per la shell di Windows che stai usando, come il Prompt dei comandi o PowerShell, non tramite Linux attraverso bash. Questo collegamento descrive quali caratteri possono essere utilizzati sul prompt dei comandi (caratteri monospace e come installare e selezionare un carattere per il prompt dei comandi): aggiungere caratteri al prompt dei comandi

  • Apri l'editor del registro (esegui "regedit")
  • Trova la cartella HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Console \ TrueTypeFont
  • Fare clic con il tasto destro (o Modifica) -> Nuovo -> Valore stringa
  • Denominare il carattere con un altro 0 rispetto all'ultimo (come "000").
  • Fare clic con il tasto destro del mouse sulla voce e selezionare "Modifica ..."
  • Immettere il nome del carattere o del file OTF (senza .otf).

Per informazioni sull'installazione dei caratteri tramite la riga di comando su Windows, vedere questa domanda e risposte.

  • Ho provato a installare "Source Code Pro" ma non è apparso nei caratteri per me.
  • Ho installato DejaVu Sans Mono e funziona per la maggior parte delle lingue ma non funziona affatto per CJK.
  • Ho installato il carattere monospace di Google Noto e ha funzionato, ma non per CJK. Inoltre, affermano specificamente di non avere il supporto monospaziale per CJK.
  • Ho installato Inconsolata di Google e non ne valeva la pena.
  • Ho installato GNU FreeFont (FreeMono) e ha funzionato, ma non per CJK.
  • Mi sono arreso e sono tornato su SimSun-ExtB.

(Nota: non ho ancora abbastanza reputazione per pubblicare i link).


6

Puoi provare DejaVu Sans Mono - funziona per me.


11
Sebbene questa possa essere la soluzione al problema del PO, è più un suggerimento che una risposta di alta qualità. Può essere migliorato dando istruzioni su: 1) come cambiare carattere per il terminale Bash di Windows 10; 2) come installare il suddetto font (a meno che non sia di default in ogni Windows 10 - sono su Linux, non lo so).
Kamil Maciorowski il

1
Ho usato Ubuntu Mono prima e ho avuto il problema con esso. DejaVu Sans Mono ha risolto il problema.
smonff

0

Questo è davvero più un commento che una risposta, ma dal momento che SE non mi permette di commentare ...

Non hai fornito informazioni sufficienti. Unicode fornisce oltre un milione di possibili caratteri, di cui oltre 100.000 sono stati definiti. (I restanti sono per quando contattiamo extraterrestri, o più probabilmente per i sistemi di scrittura dei terrestri che non sono ancora stati codificati.) Questi sono divisi in circa 150 script: latino, cirillico, arabo, cinese ... Nessun font sta andando per fornire glifi (immagini di personaggi) per tutti quei personaggi. (Ce ne sono uno o due che forniscono una scatola con il punto di codice all'interno, ma non è quello che vuoi.)

Come ha detto Grawity più di due anni fa, se stai ricevendo una casella in cui ti aspetti un singolo carattere, la tua applicazione sta già visualizzando Unicode (presumibilmente la codifica UTF-8 di Unicode). Quello che ti manca è un carattere che fornisce glifi per qualsiasi script che desideri visualizzare. Se stai visualizzando il russo, vorresti un carattere con caratteri cirillici; se si desidera visualizzare il cinese, è necessario un carattere con questi caratteri. (La maggior parte di questi caratteri mostrerà anche caratteri latini - il tipo che usiamo per l'inglese - ma non necessariamente carino.)

Quindi la mia domanda per te è: quale script stai cercando di visualizzare? Fino a quando non lo sapremo, tutte le risposte saranno ipotesi.

A proposito, ci sono alcuni script che sono abbastanza complicati e solo alcuni programmi li visualizzeranno correttamente, anche se hai il carattere giusto. Tra questi ci sono il birmano, alcuni script Indic (Devanagari, per esempio) e l'arabo (che è scritto da destra a sinistra, e ha caratteri che dovrebbero essere visualizzati in modo diverso a seconda dei caratteri adiacenti).

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.