2010-02-06 4 views

risposta

3

Se è possibile chiamare il comando chcp prima del programma, è possibile modificare la codepage in ebraico e quindi i caratteri saranno leggibili. C'è un interessante articolo su internazionalizzazione e finestre console qui: http://illegalargumentexception.blogspot.com/2009/04/i18n-unicode-at-windows-command-prompt.html

+0

http://ariely.info/Blog/tabid/83/EntryId/139/Windows-console-command-shell-Using-Local-Languages-En-US.aspx chcp 862 e "courier new" – barlop

0

Correggimi se ho torto ma non penso che la console supporti UTF8.

+0

La console supporta UTF-8. –

+0

Apparentemente no (vedi sotto). –

+1

La console ha il supporto interrotto per UTF-8. Windows ha una codepage 65001 che puoi impostare nella console tramite un'API o da 'cmd' digitando' chcp 65001'. Tuttavia c'è un bug nell'API 'WriteFile()' di Windows quando si utilizza questa codepage che restituisce il numero di caratteri Unicode scritti invece del numero documentato di byte scritti. Se .net o C# confronta questo risultato per verificare se una scrittura ha avuto successo, allora non funzionerà. Questo bug API è dietro Perl, PHP e Ruby che non funzionano sotto codepage 65001 e vari problemi nella libreria di runtime di Visual C. – hippietrail

0

nel caso si voglia solo per scopi di test brevi e non per costruire un'intera applicazione, basta usare Debug.WriteLine che fa il supporto Unicode (testato con soli caratteri Eb).

1
 Console.OutputEncoding = new UTF8Encoding(); 
     Console.WriteLine("\u05D0\u05D1"); 
     Console.WriteLine("אריאל"); 
     Console.WriteLine(new string("אריאל".Reverse().ToArray())); 

funziona per me, forse si tratta solo di rimuovere il "falso"? funziona nella mia macchina, eccetto per o.c. scrive le lettere all'indietro, a meno che non utilizzi l'inverso

forse hai bisogno di impostare il registro? eseguire -> regedit e fare questo: http://blogs.microsoft.co.il/technet/2013/06/11/%D7%90%D7%99%D7%9A-%D7%90%D7%A4%D7%A9%D7%A8-%D7%9C%D7%A8%D7%90%D7%95%D7%AA-%D7%A2%D7%91%D7%A8%D7%99%D7%AA-%D7%91-powershell-console/

nella finestra di registro, fare clic con il tasto destro del mouse selezionare nuova stringa.

+1

Ho notato Courier New lavori – barlop

2

semplicemente cambiare l'OutputEncoding:

Console.OutputEncoding = Encoding.GetEncoding("Windows-1255");