\u5f88\u591a\u9ad8\u79d1\u6280\uff1f
上面那个字符串怎么转化为GBK呢,给点思路或源码,谢谢!

解决方案 »

  1.   

    System.out.println("\u5f88\u591a\u9ad8\u79d1\u6280\uff1f ");    
      

  2.   


    package util;   
      
    /**  
     * native2ascii.exe Java code implementation.  
     *   
     * @author  
     * @version 1.0  
     */  
    public class Native2AsciiUtils {   
      
        /**  
         * prefix of ascii string of native character  
         */  
        private static String PREFIX = "\\u";   
      
        /**  
         * Native to ascii string. It's same as execut native2ascii.exe.  
         *   
         * @param str  
         *            native string  
         * @return ascii string  
         */  
        public static String native2Ascii(String str) {   
            char[] chars = str.toCharArray();   
            StringBuilder sb = new StringBuilder();   
            for (int i = 0; i < chars.length; i++) {   
                sb.append(char2Ascii(chars[i]));   
            }   
            return sb.toString();   
        }   
      
        /**  
         * Native character to ascii string.  
         *   
         * @param c  
         *            native character  
         * @return ascii string  
         */  
        private static String char2Ascii(char c) {   
            if (c > 255) {   
                StringBuilder sb = new StringBuilder();   
                sb.append(PREFIX);   
                int code = (c >> 8);   
                String tmp = Integer.toHexString(code);   
                if (tmp.length() == 1) {   
                    sb.append("0");   
                }   
                sb.append(tmp);   
                code = (c & 0xFF);   
                tmp = Integer.toHexString(code);   
                if (tmp.length() == 1) {   
                    sb.append("0");   
                }   
                sb.append(tmp);   
                return sb.toString();   
            } else {   
                return Character.toString(c);   
            }   
        }   
      
        /**  
         * Ascii to native string. It's same as execut native2ascii.exe -reverse.  
         *   
         * @param str  
         *            ascii string  
         * @return native string  
         */  
        public static String ascii2Native(String str) {   
            StringBuilder sb = new StringBuilder();   
            int begin = 0;   
            int index = str.indexOf(PREFIX);   
            while (index != -1) {   
                sb.append(str.substring(begin, index));   
                sb.append(ascii2Char(str.substring(index, index + 6)));   
                begin = index + 6;   
                index = str.indexOf(PREFIX, begin);   
            }   
            sb.append(str.substring(begin));   
            return sb.toString();   
        }   
      
        /**  
         * Ascii to native character.  
         *   
         * @param str  
         *            ascii string  
         * @return native character  
         */  
        private static char ascii2Char(String str) {   
            if (str.length() != 6) {   
                throw new IllegalArgumentException(   
                        "Ascii string of a native character must be 6 character.");   
            }   
            if (!PREFIX.equals(str.substring(0, 2))) {   
                throw new IllegalArgumentException(   
                        "Ascii string of a native character must start with \"\\u\".");   
            }   
            String tmp = str.substring(2, 4);   
            int code = Integer.parseInt(tmp, 16) << 8;   
            tmp = str.substring(4, 6);   
            code += Integer.parseInt(tmp, 16);   
            return (char) code;   
        }        public static void main(String args[]){
        
         System.out.println(ascii2Native("\u5f88\u591a\u9ad8\u79d1\u6280\uff1f "));
        
        }
        
    }  结果
    很多高科技? 
      

  3.   

    如果输出到文件中:
    BufferedWriter bw=nwq BufferedWriter(new OutputStreamWriter(new FileOutputStream("文件名"),"UTF-8"));
    bw.write("\u5f88\u591a\u9ad8\u79d1\u6280\uff1f",0,6);
      

  4.   

    bigbug的方法确实可以,震惊,想象不到的简单却想的想象不到的难!也非常感谢xn