Mega Code Archive

 
Categories / Java / Development Class
 

String Converter Unicode

/* From http://java.sun.com/docs/books/tutorial/index.html */ /*  * Copyright (c) 1995-1998 Sun Microsystems, Inc. All Rights Reserved.  *   * Permission to use, copy, modify, and distribute this software and its  * documentation for NON-COMMERCIAL purposes and without fee is hereby granted  * provided that this copyright notice appears in all copies. Please refer to  * the file "copyright.html" for further important copyright and licensing  * information.  *   * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED  * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR  * NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY  * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS  * DERIVATIVES.  */ import java.io.UnsupportedEncodingException; public class StringConverter {   public static void printBytes(byte[] array, String name) {     for (int k = 0; k < array.length; k++) {       System.out.println(name + "[" + k + "] = " + "0x"           + UnicodeFormatter.byteToHex(array[k]));     }   }   public static void main(String[] args) {     System.out.println(System.getProperty("file.encoding"));     String original = new String("A" + "\u00ea" + "\u00f1" + "\u00fc" + "C");     System.out.println("original = " + original);     System.out.println();     try {       byte[] utf8Bytes = original.getBytes("UTF8");       byte[] defaultBytes = original.getBytes();       String roundTrip = new String(utf8Bytes, "UTF8");       System.out.println("roundTrip = " + roundTrip);       System.out.println();       printBytes(utf8Bytes, "utf8Bytes");       System.out.println();       printBytes(defaultBytes, "defaultBytes");     } catch (UnsupportedEncodingException e) {       e.printStackTrace();     }   } // main } class UnicodeFormatter {   static public String byteToHex(byte b) {     // Returns hex String representation of byte b     char hexDigit[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',         'a', 'b', 'c', 'd', 'e', 'f' };     char[] array = { hexDigit[(b >> 4) & 0x0f], hexDigit[b & 0x0f] };     return new String(array);   }   static public String charToHex(char c) {     // Returns hex String representation of char c     byte hi = (byte) (c >>> 8);     byte lo = (byte) (c & 0xff);     return byteToHex(hi) + byteToHex(lo);   } } // class