StringEscapeUtils 日本語はエスケープされるらしい。
import org.apache.commons.lang.StringEscapeUtils; ・・・・ public void testStringEscapeUtilsLearing() throws Exception{ String beforeA = "@haru01@"; String tmpA = beforeA.replace('@', '\"'); System.out.println("tmpA \t\t\t=> " + tmpA); String escapeJavaA = StringEscapeUtils.escapeJava(tmpA); System.out.println("escapeJavaA \t=> " + escapeJavaA); String beforeB = "@はる一番@"; String tmpB = beforeB.replace('@', '\"'); System.out.println("tmpB \t\t\t=> " + tmpB); String escapeJavaB = StringEscapeUtils.escapeJava(tmpB); System.out.println("escapeJavaB \t=> " + escapeJavaB); String unescapeJavaB = StringEscapeUtils.unescapeJava(escapeJavaB); System.out.println("unescapeJavaB \t=> " + unescapeJavaB); }
実行結果
tmpA => "haru01" escapeJavaA => \"haru01\" tmpB => "はる一番" escapeJavaB => \"\u306F\u308B\u4E00\u756A\" unescapeJavaB => "はる一番"
期待としては、
escapeJavaB => \"はる一番\"
と出てほしんだが・・・