Java 中文于unicode 互转

xiaoxiao2024-10-27  10

关键字: java unicode convert 转换

Java代码    Java代码 package com.test;     import java.io.BufferedReader;   import java.io.IOException;   import java.io.InputStreamReader;   import java.io.UnsupportedEncodingException;     public class UnicodeByteUtil {       public static void main(String[] args) {           UnicodeByteUtil instance = new UnicodeByteUtil();           BufferedReader reader = new BufferedReader(new InputStreamReader(                   System.in));           String line;             try {               while ((line = reader.readLine()) != null) {                   if (line.trim().equals("q"))                       System.exit(0);                   String s = instance.getBytes(line);                   System.out.println("bytes:" + s);                   // System.out.println("line:"+);               }           } catch (IOException e) {               e.printStackTrace();           }       }         String getBytes(String s) {           try {               StringBuffer out = new StringBuffer("");               byte[] bytes = s.getBytes("unicode");               for (int i = 0; i < bytes.length; i++)                   System.out.println(bytes[i]);               for (int i = 2; i < bytes.length - 1; i += 2) { // *                   out.append("\\u");                   String str = Integer.toHexString(bytes[i + 1] & 0xff);// **                   for (int j = str.length(); j < 2; j++) {                       out.append("0");// ***                   }                   String str1 = Integer.toHexString(bytes[i] & 0xff);                   out.append(str);                   out.append(str1);               }               return out.toString();           } catch (UnsupportedEncodingException e) {               e.printStackTrace();               return null;           }       }   }   package com.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; public class UnicodeByteUtil { public static void main(String[] args) { UnicodeByteUtil instance = new UnicodeByteUtil(); BufferedReader reader = new BufferedReader(new InputStreamReader( System.in)); String line; try { while ((line = reader.readLine()) != null) { if (line.trim().equals("q")) System.exit(0); String s = instance.getBytes(line); System.out.println("bytes:" + s); // System.out.println("line:"+); } } catch (IOException e) { e.printStackTrace(); } } String getBytes(String s) { try { StringBuffer out = new StringBuffer(""); byte[] bytes = s.getBytes("unicode"); for (int i = 0; i < bytes.length; i++) System.out.println(bytes[i]); for (int i = 2; i < bytes.length - 1; i += 2) { // * out.append("\\u"); String str = Integer.toHexString(bytes[i + 1] & 0xff);// ** for (int j = str.length(); j < 2; j++) { out.append("0");// *** } String str1 = Integer.toHexString(bytes[i] & 0xff); out.append(str); out.append(str1); } return out.toString(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } } } Java代码 public   static   String   loadConvert(String   theString)   {                        char   aChar;                        int   len   =   theString.length();                        StringBuffer   outBuffer   =   new   StringBuffer(len);                               for   (int   x=0;   x<len;   )   {                                aChar   =   theString.charAt(x++);                                if   (aChar   ==   '\\')   {                                        aChar   =   theString.charAt(x++);                                        if   (aChar   ==   'u')   {                                                //   Read   the   xxxx                                                int   value=0;                for   (int   i=0;   i<4;   i++)   {                        aChar   =   theString.charAt(x++);                        switch   (aChar)   {                            case   '0':   case   '1':   case   '2':   case   '3':   case   '4':                            case   '5':   case   '6':   case   '7':   case   '8':   case   '9':                                  value   =   (value   <<   4)   +   aChar   -   '0';                  break;            case   'a':   case   'b':   case   'c':                                                            case   'd':   case   'e':   case   'f':                  value   =   (value   <<   4)   +   10   +   aChar   -   'a';                  break;            case   'A':   case   'B':   case   'C':                                                            case   'D':   case   'E':   case   'F':                  value   =   (value   <<   4)   +   10   +   aChar   -   'A';                  break;            default:                                                                    throw   new   IllegalArgumentException(                                                                                              "Malformed   \\uxxxx   encoding.");                                                        }                                                }                                                outBuffer.append((char)value);                                        }   else   {                                                if   (aChar   ==   't')   aChar   =   '\t';                                                else   if   (aChar   ==   'r')   aChar   =   '\r';                                                else   if   (aChar   ==   'n')   aChar   =   '\n';                                                else   if   (aChar   ==   'f')   aChar   =   '\f';                                                outBuffer.append(aChar);                                        }                                }   else                                        outBuffer.append(aChar);                        }                        return   outBuffer.toString();                }   public static String loadConvert(String theString) { char aChar; int len = theString.length(); StringBuffer outBuffer = new StringBuffer(len); for (int x=0; x<len; ) { aChar = theString.charAt(x++); if (aChar == '\\') { aChar = theString.charAt(x++); if (aChar == 'u') { // Read the xxxx int value=0; for (int i=0; i<4; i++) { aChar = theString.charAt(x++); switch (aChar) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': value = (value << 4) + aChar - '0'; break; case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': value = (value << 4) + 10 + aChar - 'a'; break; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': value = (value << 4) + 10 + aChar - 'A'; break; default: throw new IllegalArgumentException( "Malformed \\uxxxx encoding."); } } outBuffer.append((char)value); } else { if (aChar == 't') aChar = '\t'; else if (aChar == 'r') aChar = '\r'; else if (aChar == 'n') aChar = '\n'; else if (aChar == 'f') aChar = '\f'; outBuffer.append(aChar); } } else outBuffer.append(aChar); } return outBuffer.toString(); } Java代码 private   static   String   unicodeToGB(String   s)   {                StringBuffer   sb   =   new   StringBuffer();                StringTokenizer   st   =   new   StringTokenizer(s,   "\\u");                while   (st.hasMoreTokens())   {                    sb.append(   (char)   Integer.parseInt(st.nextToken(),   16));                }                return   sb.toString();            }   相关资源:中英文与Unicode码互转
转载请注明原文地址: https://www.6miu.com/read-5018644.html

最新回复(0)