[英]Windows-1252 encoding - incorrect characters displayed
我有一個帶有在Windows-1252中編碼的字符的緩沖區。 但是,當我使用適當的編碼創建一個新的String時,而不是預期的結果,我經常會得到詢問標記,例如。
byte[] tmps = new byte[] {(byte) 0xfb};
System.out.println (new String (tmps,0,1,"Windows-1252" ));
結果,系統應顯示“u”字符,其上方帶有“^”。 而是顯示“?”。
任何想法?
首先,Windows-1252 是受支持的編碼:
如果不是,你會在new String (...,"Windows-1252")
得到UnsupportedEncodingException
。 (這就是javadoc所說的!)
Oracle Java文檔稱Windows-1252位於“基本編碼集”中 - http://docs.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html,http:// docs .oracle.com / javase / 6 / docs / technotes / guides / intl / encoding.doc.html ,etcetera。
我認為這里最可能出現的問題是輸出端。 具體來說,Java可能會認為您的語言環境的默認字符集是ASCII或不支持該代碼點的內容。
消除Windows-1252
作為問題原因的一種方法是使用Unicode轉義編寫等效字符串; 例如
System.out.println("\u00fb");
我已經發現了這個。
菜單運行/運行配置/下一個Java應用程序和您自己的應用程序名稱/選項卡常用/下一個編碼設置為UTF-8
從現在開始,Windows 1250和1252個字符似乎都顯示正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.