2009年07月10日

【1日1Commons】文字をユニコードエスケープする

CharUilts.unicodeEscapedで文字をユニコードエスケープする

// JRE 1.6.0_07
// Commons Lang 2.4
// org.apache.commons.lang.CharUilts
// 文字をユニコードエスケープする
// tag char unicodeEscaped

// これだけの文字をユニコードエスケープしてみる
String str = "A0\tあ概蓋";

int len = str.length();
for( int i = 0; i < len; i++ ) {
    System.out.print(
            CharUtils.unicodeEscaped( str.charAt( i ) ) + " | " );
}
  // => \u0041 | \u0030 | \u0009 | \u3042 | \u6982 | \u84cb | 

// ちなみに中のロジックは、\\uにInteger.toHexString(ch)を加えてる感じ

// 戻すときは、せっかくなのでCommons仲間の
// StringEscapeUtils.unescapeJava を使ってあげよう
String escaped = CharUtils.unicodeEscaped( '漢' );
System.out.println(
        StringEscapeUtils.unescapeJava( escaped ) );
  // => 漢