Domanda

Sono in grado di visualizzare correttamente i simboli ASCII standard (fino a 127), come "cuore", "nota" sai cosa voglio dire. Vorrei visualizzare anche quelli che posso usare per disegnare muri (come U0205) ma non work..well, funziona ma sembra che "?". Tutto il senso come posso visualizzare? Grazie.

È stato utile?

Soluzione

applicazioni modalità console sono limitate ad una codifica tabella di codici a 8 bit. Il valore di default su molte macchine è IBM437, la pagina di codice che corrisponde al vecchio set di caratteri IBM PC. È possibile modificare la pagina di codice assegnando la proprietà OutputEncoding:

        Console.OutputEncoding = Encoding.UTF8;

Ora però in genere si ha un problema con il tipo di carattere. Console di default per il tipo di carattere Terminal, un vecchio carattere dispositivo che ha avuto glifi nel posto giusto per produrre il set di caratteri IBM PC. Non ci sono un sacco di font disponibili che possono produrre i glifi corretti che corrispondono ai codepoints Unicode. Consolas è su di esso, disponibile su Vista e Win7.

Ma non è quello che si chiedono, credo, sto cercando di indovinare che in realtà si sta chiedendo sui vecchi disegnare box caratteri. Che funziona senza alcun armeggiare con le impostazioni della console, è sufficiente utilizzare i giusti caratteri Unicode. Ecco un esempio che dovrebbe sopravvivere a un copia-e-incolla:

class Program {
    static void Main(string[] args) {
        Console.WriteLine("╒════════╕");
        Console.WriteLine("│ Hello  │");
        Console.WriteLine("│ world  │");
        Console.WriteLine("╘════════╛");
        Console.ReadLine();
    }
}

Per trovare questi caratteri, utilizzare l'applet charmap.exe di Windows. Fare clic sulla casella "Vista Avanzate" e "box" tipo in "Cerca" casella di testo, la griglia si riempirà di disegnare la casella caratteri. Il primo utilizzabile che correttamente convertire la console è '\ u250c'.

Altri suggerimenti

Il problema sembra essere con l'applicazione Console piuttosto che con il vostro programma. La console standard in Windows (cmd.exe) sembra non supportare Unicode correttamente - per esempio, provare a copiare la stringa qui sotto e incollare direttamente in una finestra di cmd.exe:

  

Fußball Ö U

PowerShell sembra soffrire dello stesso problema pure.

Una possibile soluzione al vostro problema è quello di creare una finestra / form dedicato da utilizzare come "console di output" invece di utilizzare la console attuale attraverso il quale è stata eseguita l'applicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top