Javaで\uXXXX形式にunicodeエスケープするメソッド

JSONの文字コードはUnicodeで出力するのが良いらしい - nishin5のWebデザイン&開発ログ の続きです。


Javaで文字列を\uXXXXの形式のunicodeエスケープするメソッドを書きました。こういう時に使えるみたいです↓

> 文字エンコーディングに依存しない形に変換したいときやJSON変換関数を書くときなんかには便利です。
[JavaScript]\uXXXX形式にunicodeエスケープする関数 / LiosK-free Blog

  • メソッド
/**
 * 対象の文字列をUnicodeに変換する
 * _0-9a-zA-Zはそのまま表示する
 * 
 * @param value
 * @return
 */
public static String unicodeEscape(String value) {
	
	if (value == null)
		return "";
	
    char[] charValue = value.toCharArray();
    
    StringBuilder result = new StringBuilder();
    for (char ch : charValue){
        if (ch != '_' && !(ch >= '0' && '9' >= ch) && !(ch >= 'a' 
&& 'z' >= ch) && !(ch >= 'A' && 'Z' >= ch)) {    
            String unicodeCh = Integer.toHexString((int)ch);
           
            result.append("\\u");
            for (int i = 0; i < 4 - unicodeCh.length(); i++) {
                result.append("0");
            }
            result.append(unicodeCh);

        } else {
        	result.append(ch);
        }
        
    }
    
    return result.toString();
}