posts - 4,comments - 30,trackbacks - 0

public class ToHtml {
 /** HTMLエンコードが必要な文字 **/
 static char[] htmlEncChar = {'&', '"', '<', '>'};
 /** HTMLエンコードした文字列 **/
 static String[] htmlEncStr = {"&amp;", "&quot;", "&lt;", "&gt;"};

 /**
  * HTMLエンコード処理。
  *   &,",<,>の置換
 **/
 
 public static String encode (String strIn) {
  if (strIn == null) {
   return(null);
     }

     // HTMLエンコード処理
     StringBuffer strOut = new StringBuffer(strIn);
     // エンコードが必要な文字を順番に処理
     for (int i = 0; i < htmlEncChar.length; i++) {
      // エンコードが必要な文字の検索
      int idx = strOut.toString().indexOf(htmlEncChar[i]);

      while (idx != -1) {
       // エンコードが必要な文字の置換
       strOut.setCharAt(idx, htmlEncStr[i].charAt(0));
       strOut.insert(idx + 1, htmlEncStr[i].substring(1));

       // 次のエンコードが必要な文字の検索
       idx = idx + htmlEncStr[i].length();
       idx = strOut.toString().indexOf(htmlEncChar[i], idx);
      }
     }
     return(strOut.toString());
 }
}



<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ page import="renesas.common.util.*" %>

<html>
 <head>
  <title>HTMLエンコードのテスト</title>
 </head>
<body>

<h1>HTMLエンコードのテスト</h1>

<form>
<table>
 <tr>
  <td> & の付いたデータ</td>
  <td><input type="text" value="<%= ToHtml.encode("joe&joe") %>" /></td>
 </tr>
 <tr>
  <td> <> の付いたデータ</td>
  <td><input type="text" value="<%= ToHtml.encode("<joe>") %>" /></td>
 </tr>
 <tr>
  <td> " の付いたデータ</td>
  <td><input type="text" value="<%= ToHtml.encode("\"joe\"") %>" /></td>
 </tr>
</table>
</form>

</body>
</html>


posted on 2007-08-10 11:28 蛮哥♂枫 阅读(260) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: