乱码转换为 Unicode

public String toUnicode(String info)
 {  
     StringBuffer tmp = new StringBuffer() ;  
     for(char cc : info.toCharArray())
     { 
       UnicodeBlock ub = Character.UnicodeBlock.of(cc);  
    if(Arrays.asList(unicodeBlocks).contains(ub)){ 
     tmp.append(cc);
    } else{
     String hexS = Integer.toHexString(cc);

 if(hexS.length()==3){
      hexS = "0" + hexS;
     }else if(hexS.length()==2){
      hexS = "00" + hexS;
     }
           String unicode = "\\u"+hexS;
           tmp.append(unicode);
      }
     }
     String infos = tmp.toString();  
     return infos;
 }  
private static final UnicodeBlock[] unicodeBlocks = new UnicodeBlock[]{  
     UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS,  
     UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION,  
     UnicodeBlock.CJK_COMPATIBILITY,
     UnicodeBlock.ENCLOSED_CJK_LETTERS_AND_MONTHS,
     UnicodeBlock.HANGUL_SYLLABLES,
     UnicodeBlock.ARABIC,
     UnicodeBlock.BASIC_LATIN,  
     UnicodeBlock.LATIN_1_SUPPLEMENT,  
     UnicodeBlock.LATIN_EXTENDED_A,  
     UnicodeBlock.LATIN_EXTENDED_B,  
     UnicodeBlock.KATAKANA,  
     UnicodeBlock.HIRAGANA,  
     UnicodeBlock.BOPOMOFO,
     UnicodeBlock.MISCELLANEOUS_SYMBOLS_AND_ARROWS,
     UnicodeBlock.GEOMETRIC_SHAPES,
     UnicodeBlock.GREEK,
     UnicodeBlock.COMBINING_DIACRITICAL_MARKS,
     UnicodeBlock.IPA_EXTENSIONS,
     UnicodeBlock.LETTERLIKE_SYMBOLS,
     UnicodeBlock.CURRENCY_SYMBOLS,
     UnicodeBlock.MUSICAL_SYMBOLS,
     UnicodeBlock.MISCELLANEOUS_SYMBOLS,
     UnicodeBlock.TAI_XUAN_JING_SYMBOLS,
     UnicodeBlock.YIJING_HEXAGRAM_SYMBOLS,
     UnicodeBlock.SUPPLEMENTAL_ARROWS_A,
     UnicodeBlock.SUPPLEMENTAL_ARROWS_B,
     UnicodeBlock.BRAILLE_PATTERNS,
     UnicodeBlock.BLOCK_ELEMENTS,
     UnicodeBlock.CONTROL_PICTURES,
     UnicodeBlock.AEGEAN_NUMBERS,
     UnicodeBlock.DINGBATS,
     UnicodeBlock.LATIN_EXTENDED_ADDITIONAL,
     UnicodeBlock.CYRILLIC,
     UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS,
     UnicodeBlock.GENERAL_PUNCTUATION
     };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值