|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我是根据自己的成长历程来写的,如有不对的还请指正。网页|显示 <LI class=content id=pre_1156744211>凡是情形下,咱们的网页要指定一个编码字符集,如 GB2312、UTF-8、ISO-8859-1 等,如许咱们就能够在网页上显示咱们指定编码的文字了。然而咱们极可能会碰到这类情形,那就是咱们能够但愿在 ISO-8859-1 编码的网页上显示汉字,或在 GB2312 编码的网页上显示韩文等。固然一种处理举措就是咱们不必 ISO-8859-1 或 GB2312 编码,而一切都采取 UTF-8 编码,如许咱们只需在这类编码下,就能够夹杂显示列国文字了,这是如今良多网站采取的办法。
而我这里所说的并不是下面这类办法,由于下面这类办法必需要指定字符集为 UTF-8 才可以,一旦用户手工指定为其他字符集,或能够由于某些缘由,谁人字符集设置没起感化,而阅读器又没有准确主动辨认的话,咱们看到的网页仍是乱码,特别是在某些用框架作的网页中,某个框架中的页面假如字符集设置没起感化,在 firefox 中显示乱码并且还没法改动(我是说在不装RightEncode插件的情形下)。
而我这里引见的办法即便是把网页指定为 ISO-8859-1 字符集,也可以准确显示汉字、日文等。道理很复杂,就是把除 ISO-8859-1 编码中前128个字符之外的一切其他的编码都用 NCR(Numeric character reference) 来暗示。好比“汉字”这两个字,假如咱们写成“汉字”这类模式,那末它在恣意字符集下都可以准确显示。依据这个道理,我写了上面这个法式,它可以把现有的网页转化为在恣意字符集下都能显示的网页。你只需求指定源网页的字符集和源网页,点提交按钮,就能够失掉方针网页了。你也能够只转化某些文字,只需求把文字填写到文本框中,并指定这些文字本来的字符集,点提交按钮,就会在页面下面显示编码后的文字了。别的我还编写了 WordPress 的插件,如今我的 Blog 已可以在恣意字符集下都能准确显示了。
转化法式地址:http://test.coolcode.cn/nochaoscode/
下载: nochaoscode.php
<?php
function nochaoscode($encode, $str, $isemail = false) {
$str = iconv($encode, "UTF-16", $str);
for ($i = 0; $i < strlen($str); $i++,$i++) {
$code = ord($str{$i}) * 256 + ord($str{$i + 1});
if ($code < 128 and !$isemail) {
$output .= chr($code);
} else if ($code != 65279) {
$output .= "&#".$code.";";
}
}
return $output;
}
$encode = $_POST['encode'];
if ($encode == '') $encode = 'UTF-8';
if ($_FILES['file']['size'] > 0) {
$data = nochaoscode($encode, file_get_contents($_FILES['file']['tmp_name']));
header ("Content-type: application/octet-stream;");
header ("Content-length: ".strlen($data));
header ("Content-Disposition: attachment; filename=".$_FILES['file']['name']);
echo $data;
} else {
header ("Content-type: text/html; charset=UTF-8");
if ($_POST['email']) {
echo htmlentities(nochaoscode($encode, $_POST['email'], true));
}
else {
echo htmlentities(nochaoscode($encode, $_POST['content']));
}
?>
<form enctype="multipart/form-data" method="POST">
encode: <input type="text" name="encode" value="UTF-8" /><br />
file: <input type="file" name="file" /><br />
<input type="submit" />
</form>
<form method="POST">
encode: <input type="text" name="encode" value="UTF-8" /><br />
content: <textarea name="content"></textarea><br />
<input type="submit" />
</form>
<form method="POST">
encode: <input type="text" name="encode" value="UTF-8" /><br />
email: <input name="email" /><br />
<input type="submit" />
</form>
<?php
}
?>
理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。 |
|