Unicode VS Utf-8 到底有何区别,用哪种好? 系统:FreeBSD + PHP + Apache + PostgreSQL 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.linuxforum.net/books/UTF-8-Unicode.htmlhttp://www.xikao.com/reference/unicode.htm 想建一个多语言系统的网站,不管你输入何种语言、何种字符,只要输入进系统,就能看的见你输入时的内容,而不是一堆乱码? 比如说,你用的是简体中文的系统,不管你看的繁体中文、日文、俄语、法语等等,既使你不安装相对应的系统,也能看见用那些语言输入的内容,虽然你看不懂那些语言,但却能看得见,而不是一堆乱码。 最重要的是要考虑到存储空间、使用效率、普遍性等等。 系统:FreeBSD + PHP + Apache + PostgreSQL unicode是统一两字节编码,utf-8是变长1-3字节。有一一对应关系。都能满足你上面提的要求。因为编码中包含了包括中文(繁简),日文,俄语,法语等,存储空间看你主要的内容,比如中文在utf8中基本是3字节,但英文是1字节(和ascii码相同),所以如果英文为主,就是utf8节省空间。效率似乎谈不上多大差别。普遍性。。不知道。utf8的一个优点在于如果中间出现个别字节丢失等,只会影响该字符,不会影响其后的字符。 utf8的一个优点在于如果中间出现个别字节丢失等,只会影响该字符,不会影响其后的字符。Unicode 会影响整体? 为什么我作的网页在utf8下margin无法设置为0,边沿老是有空白。见http://www.veryzone.org/而当编码设置为gb时候,就可以把空白边沿去掉?http://www.veryzone.org/default.php/bt_list/实在搞不懂。 to ahxiao: 看你显示出来的网页的源文件,开头有3个特殊字符,是utf8文件的BOM,去掉即可。 to idustbin: unicode是双字节,如果中间丢失一个字节,另一字节会和后面字符的前半字节构成另外一个字符。gb这样的双字节编码有一样的问题。utf8因为字节开头有特殊标识位,可以识别。具体你查一下网上的资料即可。 to helloyou0(你好!) 请问怎么去掉?我是用editplus,我打开没有发现这3个字符阿。感谢你回答我的问题。 知道解决的方法了<?//此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除//By Bob Shen$basedir="."; //修改此行为需要检测的目录,点表示当前目录$auto=1; //是否自动移除发现的BOM信息。1为是,0为否。//以下不用改动if ($dh = opendir($basedir)) {while (($file = readdir($dh)) !== false) {if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file)) echo "filename: $file ".checkBOM("$basedir/$file")." <br>";}closedir($dh);}function checkBOM ($filename) {global $auto;$contents=file_get_contents($filename);$charset[1]=substr($contents, 0, 1); $charset[2]=substr($contents, 1, 1); $charset[3]=substr($contents, 2, 1); if (ord($charset[1])==239 && ord($charset[2])==187 && ord($charset[3])==191) {if ($auto==1) {$rest=substr($contents, 3);rewrite ($filename, $rest);return ("<font color=red>BOM found, automatically removed.</font>");} else {return ("<font color=red>BOM found.</font>");}} else return ("BOM Not Found.");}function rewrite ($filename, $data) {$filenum=fopen($filename,"w");flock($filenum,LOCK_EX);fwrite($filenum,$data);fclose($filenum);} ahxiao:用editplus打开文件,“参数选择”->“文件”->里面的最后一项“不添加bom字节到utf-8文件”(视版本而定,可能描述会有不同)勾上,确定,保存文件。就把utf-8里面的bom去掉了。其实dw,ue等也都有这个选项。 问下如何模拟User-Agent和Referer下载软件 阅览统计量的问题 请教关于空格的处理 PHP 获取IP代理IP 高手进入 关于paypal的问题,请教各位 apache+php+mysql配置 PHP新手请教一个基本问题! 那位大虾有php+SQL Server 2000分页显示的例子,拜托贴一下 哪儿有win2K Pro版下载? 关于for循环的一个错误 请教一下发email验证邮箱的原理 请问 [email protected] 与 nop\u0040nop\u002Epbz 之间是怎么转化的?
http://www.linuxforum.net/books/UTF-8-Unicode.htmlhttp://www.xikao.com/reference/unicode.htm
都能满足你上面提的要求。因为编码中包含了包括中文(繁简),日文,俄语,法语等,
存储空间看你主要的内容,比如中文在utf8中基本是3字节,但英文是1字节(和ascii码相同),
所以如果英文为主,就是utf8节省空间。
效率似乎谈不上多大差别。
普遍性。。不知道。utf8的一个优点在于如果中间出现个别字节丢失等,只会影响该字符,不会影响其后的字符。
见http://www.veryzone.org/而当编码设置为gb时候,就可以把空白边沿去掉?
http://www.veryzone.org/default.php/bt_list/实在搞不懂。
utf8因为字节开头有特殊标识位,可以识别。
具体你查一下网上的资料即可。
请问怎么去掉?我是用editplus,我打开没有发现这3个字符阿。
感谢你回答我的问题。
<?
//此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除
//By Bob Shen$basedir="."; //修改此行为需要检测的目录,点表示当前目录
$auto=1; //是否自动移除发现的BOM信息。1为是,0为否。//以下不用改动if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file)) echo "filename: $file ".checkBOM("$basedir/$file")." <br>";
}
closedir($dh);
}function checkBOM ($filename) {
global $auto;
$contents=file_get_contents($filename);
$charset[1]=substr($contents, 0, 1);
$charset[2]=substr($contents, 1, 1);
$charset[3]=substr($contents, 2, 1);
if (ord($charset[1])==239 && ord($charset[2])==187 && ord($charset[3])==191) {
if ($auto==1) {
$rest=substr($contents, 3);
rewrite ($filename, $rest);
return ("<font color=red>BOM found, automatically removed.</font>");
} else {
return ("<font color=red>BOM found.</font>");
}
}
else return ("BOM Not Found.");
}function rewrite ($filename, $data) {
$filenum=fopen($filename,"w");
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}
用editplus打开文件,“参数选择”->“文件”->里面的最后一项“不添加bom字节到utf-8文件”(视版本而定,可能描述会有不同)勾上,确定,保存文件。
就把utf-8里面的bom去掉了。其实dw,ue等也都有这个选项。