1. 程式人生 > >NCR字元編碼(形如中国)轉換為漢字 in JAVA

NCR字元編碼(形如中国)轉換為漢字 in JAVA

numericcharacterreference(NCR),數字取值為目標字元的Unicodecodepoint;以「&;#」開頭的後接十進位制數字,以「&;#x」開頭的後接十六進位制數字。「中國」二字分別是Unicode字元U+4E2D和U+56FD,十六進位制表示的codepoint數值「4E2D」和「56FD」就是十進位制的「20013」和「22269」。所以——中國中國——這兩種NCR寫法都會在顯示時轉換為「中國」二字。

轉自&;#x開頭的是什麼編碼呢

我在專案中碰到的情況是在window環境下不會出現這種問題,從前臺傳過來的文字儲存到資料庫中編碼格式不會轉變,但是在Linux下出現文字轉變成NCR字元編碼格式,在網上找尋了一些方法已經解決,特在此記錄。

public class test {          public static void main(String[] args) {         String str = "#20013;&#22269;";         String s = str(str);         System.out.print(s);     }               public static String str(String str) {         StringBuffer sb = new StringBuffer();         String myString = str.replace("&#", "");         String[] split = myString.split(";");         for (int i = 0; i < split.length; i++) {             sb.append((char) Integer.parseInt(split[i]));         }         return sb.toString();     }      }