2015-10-23 28 views
0

在我的應用程序中,我正在讀取包含中文字符的屬性文件(UTF-8編碼)並將它們打印在Windows命令行上。但是,由於某些原因郵件沒有正確顯示(一些額外的字符即將到來)。但是,在Eclipse控制檯和Cygwin上,相同的消息正確顯示。我已將命令行代碼頁設置爲utf-8(65001),並使用了「Lucida」字體。使用utf-8代碼頁的windows命令行問題

enter image description here

如果你看到上面的圖片,在Windows上,它在第二行打印一個額外的0,但預計不會;在Cygwin消息被正確打印。

請讓我知道如果我失去了一些東西。從這個post,我可以看到Windows UTF-8代碼頁實現有一些問題。如果是這樣,是否有其他方法可以解決這個問題?

回答

0

我可以看到,有一些問題與Windows UTF-8的代碼頁實現

哦確是

是否有任何其他的方法來克服這個問題?

典型的解決方案是接受Windows命令提示符是一個破損的災難並繼續前進。但是,如果您確實需要,可以use JNA直接調用Win32函數WriteConsole,避免斷開字節編碼層,當您確定要輸出到控制檯(而不是管道)時。

+0

感謝您的回答。我使用JDK提供的native2ascii工具轉換了我的屬性文件,並且郵件正確打印。看起來,Windows沒有任何問題convertng和打印轉義的Unicode字符(native2ascii工具傳遞中文字符轉義的Unicode字符)。 – geekprogrammer