chcp Come visualizzare Kanji giapponese all'interno di una finestra di cmd sotto Windows?




console utf 8 (3)

Ho un server inglese di Windows 2003 con supporto per la lingua asiatica attivato. I due soli caratteri disponibili per la finestra di comando (impostazioni cmd) sono raster e lucida console. Né l'uno né l'altro visualizzano correttamente il Kanji (visualizzato come punto interrogativo).

C'è una soluzione per farli visualizzare? C'è qualche trasformazione che devo fare nella mia applicazione prima di scrivere alla console?

Sto scrivendo UTF8 al momento, ciò che funziona bene anche per alcuni caratteri non ASCII (come öäüß). Il codice sorgente che scrive sulla console ha i dati corretti (il Kanji può essere visualizzato correttamente nel debugger). Se è importante, sto scrivendo l'app in C #.

EDIT: ho trovato questo link che spiega i problemi dietro il problema e presenta una soluzione (che coinvolge chiamate native) per C #. Questo funzionerà bene con .NET 4.5 (non verificato da me)


Come viene prodotta la scrittura della tua applicazione? Le chiamate stdio basate su byte C come printf non supporteranno UTF-8 su Windows a meno che tu non abbia impostato specificamente la console per usare la codifica UTF-8 dicendo chcp 65001 && somecommand (e anche allora ci sono problemi).

Senza chcp , la console userà la pagina di codice predefinita dell'installazione di Windows, in questo caso cp1252, e scrivere in kanji sarà impossibile anche se il font della console che si sta usando ha glifi per esso.

Se si desidera scrivere in modo affidabile Unicode sulla console, è necessario utilizzare interfacce basate su caratteri come wprintf .


Ecco come posso ottenere input / output cinesi in cmd.exe in esecuzione su Windows 7 Pro English Version.

  1. Installa console2, che è un front-end per cmd.exe (e altre shell).

  2. Dopo l'installazione, segui le istruzioni qui

    • Elimina chiave "Console2 Command window" nel registro
    • Importa i seguenti dati nel registro di Windows:

    • Per cinese (中文) Windows XP e Vista:

      Windows Registry Editor Version 5.00
      
      [HKEY_CURRENT_USER\Console\Console2 command window]
      "CodePage"=dword:000003a8
      "FontSize"=dword:000a0000
      "FontFamily"=dword:00000036
      "FontWeight"=dword:00000190
      "FaceName"="細明體"
      "HistoryNoDup"=dword:00000000
      
    • Per il giapponese (日本語) Windows XP e Vista:

      Windows Registry Editor Version 5.00
      
      [HKEY_CURRENT_USER\Console\Console2 command window]
      "CodePage"=dword:000003a8
      "FontSize"=dword:000a0000
      "FontFamily"=dword:00000036
      "FontWeight"=dword:00000190
      "FaceName"="MS 明朝"
      "HistoryNoDup"=dword:00000000
      
  3. È possibile o meno dover cambiare il carattere. Inizialmente avevo impostato il carattere su @NimSum e i caratteri cinesi sono stati ruotati di 90 gradi. Poi sono passato a NimSum (senza @) ed è uscito correttamente. Poi, per curiosità, sono passato a Consola e ancora riesco ancora a vedere i caratteri cinesi. Quindi non sono sicuro se devi effettivamente impostare il carattere o meno.


Se trovi un font che visualizzerà il set di caratteri Kanji, puoi aggiungere quel font alle impostazioni di cmd aggiungendo valori sotto questa chiave di registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont\

Valori:

Name: 00
Data: Consolas

L'ho già fatto prima ma ho trovato questo riferimento su SuperUser: https://superuser.com/q/55318

Spero che questo ti aiuti





cmd