Java获取URL中的汉字编码

public class Encoder { 
    public static String Encode(String text, String Endocing) { 
        StringBuffer result = new StringBuffer(); 
        for (int i = 0; i < text.length(); i++) { 
            char c = text.charAt(i); 
            if (c >= 0 && c <= 255) { 
                result.append(c); 
            } 
            else { 
                byte[] b = new byte[0]; 
                try { 
                    b = Character.toString(c).getBytes(Endocing); 
                } 
                catch (Exception e) { 
                    e.printStackTrace(); 
                } 
                for (int j = 0; j < b.length; j++) { 
                    int k = b[j]; 
                    if (k < 0) 
                        k += 256; 
                    result.append("%" + Integer.toHexString(k).toUpperCase()); 
                } 
            } 
        } 
        return result.toString(); 
    } 

    public static String EncodeKeyWords(String Words, String Encoding) { 
        String Codes = ""; 
        String Word = ""; 
        int i = 0; 
        Words += ' '; 
        while (i < Words.length()) { 
            if (Words.charAt(i) != ' ') { 
                Word += Words.charAt(i); 
            } 
            else { 
                Codes += Encode(Word, Encoding) + '+'; 
                Word = ""; 
            } 
            i++; 
        } 
        Codes = Codes.substring(0, Codes.length() - 1); 
        return Codes; 
    } 

       使用时 Encoder.EncodeKeyWords("关键字", "GB2312") 即返回相应的编码,其中GB2312是百度所使用的,需要Google的编码时应改成"UTF-8"。

来自http://gaofeihang.blog.163.com/blog/static/84508285201021032631948/

你可能感兴趣的:(java)