文字列中に含まれる「<」、「>」、「”」などはそのままHTMLで表示するとHTMLのタグなどと認識されて表示が崩れてしまいます。その為、HTMLへ渡す前にサーバ側(java)でHTMLコードをエスケープする必要があります。
JAVAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
/** * <p>[概 要] HTMLエスケープ処理</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @param str 文字列 * @return HTMLエスケープ後の文字列 */ public static String htmlEscape(String str){ StringBuffer result = new StringBuffer(); for(char c : str.toCharArray()) { switch (c) { case '&' : result.append("&"); break; case '<' : result.append("<"); break; case '>' : result.append(">"); break; case '"' : result.append("""); break; case '\'' : result.append("'"); break; case ' ' : result.append(" "); break; default : result.append(c); break; } } return result.toString(); } |
JUnitサンプル
1 2 3 4 5 6 7 8 9 10 11 12 |
@Test public void htmlEscapeTest_Normal() { // 準備 String str = "&<>\"\' abc123"; String expected = "&<>"' abc123"; // 実行 String result = UtilSample1.htmlEscape(str); // 検証 assertEquals("HTMLエスケープ結果", expected, result); } |