发新话题
打印

多字节字符 转 HTML实体编码

多字节字符 转 HTML实体编码

The php code:
function html_encode($str, $encode = 'UTF-8') {
	$str = iconv($encode, 'UTF-16BE', $str);
	for($i = 0; $i < strlen($str); $i += 2){
		$code = ord($str{$i}) * 256 + ord($str{$i + 1});
		$output .= $code < 128 ? chr($code) : '&#' . $code . ';';
	}
	return $output;
}

The js code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Seagle.K">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<SCRIPT LANGUAGE="JavaScript">
function convert()
{
	var str = document.conv.str.value;
	var result = "";

	for(var i = 0 ; i < str.length ; i++)
	{
		c = str.charAt(i);
		if ((' ' <= c && c <= '~') || (c == '\r') || (c == '\n'))
		{
			if (c == '&')
			{
				cstr = "&amp;";
			} else if(c == '<')
			{
				cstr = "&lt;";
			} else if (c == '>')
			{
				cstr = "&gt;";
			} else 
			{
				cstr = c.toString();
			}
		} else
		{
			cstr = "&#" + c.charCodeAt().toString() + ";";
		}
		result = result + cstr;
	}

	document.conv.result.value = result;
	document.conv.result.focus();
	document.conv.result.select();
	
	return 0;
}
</SCRIPT>
<STYLE TYPE="text/css">

</STYLE>
</HEAD>
<BODY>
<form action="/" id="conv" name="conv">
<table border="1">
<CAPTION VALIGN=TOP>多字节字符的HTML实体编码</CAPTION>
  <tr>
    <th>源字符</th>
    <td><textarea id="str" cols="80" rows="10" onchange="convert();" onblur="convert();"></textarea></td>
  </tr>
  <tr>
    <th>实体转换</th>
    <td><textarea id="result" cols="80" rows="10" readonly></textarea><br /></td>
  </tr>
  <tr>
    <td colspan="2"><input type="button" value="转换" onclick="convert();" onkeypress="convert" />
	<input type="reset" value="取消" /></td>
  </tr>
</table>
</form>
</BODY>
</HTML>

空间出租:P4 3.0+1G+RIAD 1 160G+PHP+IIS+MYSQL+MDaemon

QQ:126682182
Email:hhyisw@163.com
Home:http://www.stksky.com

TOP

发新话题