/* 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 
 
 
            
          
     
     
     
     
  
  |