public class ToHtml {
/** HTMLエンコードが必要な文字 **/
static char[] htmlEncChar = {'&', '"', '<', '>'};
/** HTMLエンコードした文字列 **/
static String[] htmlEncStr = {"&", """, "<", ">"};
/**
* 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