All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
合理使用HTML标签进行CSS布局_[Html教程]
用php程序作为linux自动执行脚本_php资料_编程技术
解决方案:用户sa登录失败_[SQL,Server教程]
在ASP.NET中防止注入攻击_[Asp.Net教程]
网页制作知识:XHTML 和 DOCTYPE 切换_[Html教程]
教你学会XML Web Service 的基础_[XML教程]
用CSS解决未知高度的DIV垂直居中的问题_[Html教程]
Asp.Net,XML操作基类_.net资料_编程技术
SQL,Server,2008,R2官方上市日期出炉_mssql学习_编程技术
PHP实例:PHP无限极分类_[PHP教程]
Reading number is top 10 pictures
含苞欲放的素颜美少女2
来几张有特色的图片
Forced sex girl living abroad2
Sora aoi mirror memorial classics4
Magnificent cloud1
西游四格漫画(六)
Chinese paper-cut grilles art appreciation4
刘亦菲写真集2
Flow chart of breast implants
关于提肛的健身效果
Download software ranking
Prostitutes diary
VeryCD电驴(EasyMule) V1.1.9 Build09081
Unix video tutorial15
Wild things 2
都市狐狸姑娘传
Twenty piece of palm leaf
Unix video tutorial20
美女写真3
Proficient in JavaScript
VC++6.0简体中文版
归海一刀 published in(发表于) 2014/2/10 6:54:41 Edit(编辑)
用php实现gb2312和unicode(UTF-8)间的编码转换_[PHP教程]

用php实现gb2312和unicode(UTF-8)间的编码转换_[PHP教程]

用php实现gb2312和unicode(UTF-8)间的编码转换_[PHP教程]























下面的例子是将 gb2312 转换为 uft-8 这种形式
php4.3.1以后的iconv函数很好用的,只是需要自己写一个uft8到unicode的转换函数
查表(gb2312.txt)也行




text = "电子书库";
preg_match_all("/[\x80-\xff]?./",text,ar);
foreach(ar[0] as v)
echo "&#".utf8_unicode(iconv("GB2312","UTF-8",v)).";";
?>
// utf8 -> unicode
function utf8_unicode(c) {
switch(strlen(c)) {
case 1:
return ord(c);
case 2:
n = (ord(c[0]) & 0x3f) << 6;
n += ord(c[1]) & 0x3f;
return n;
case 3:
n = (ord(c[0]) & 0x1f) << 12;
n += (ord(c[1]) & 0x3f) << 6;
n += ord(c[2]) & 0x3f;
return n;
case 4:
n = (ord(c[0]) & 0x0f) << 18;
n += (ord(c[1]) & 0x3f) << 12;
n += (ord(c[2]) & 0x3f) << 6;
n += ord(c[3]) & 0x3f;
return n;
}
}
?>




下面的例子是利用php将uft-8这中编码转换为gb2312.




str = "TTL&#20840;&#22825;&#20505;&#33258;&#21160;&#32858;&#28966;";
str = preg_replace("|&#([0-9]{1,5});|", "\".u2utf82gb(\\1).\"", str);
str = "\str=\"str\";";
eval(str);
echo str;
function u2utf82gb(c){
str="";
if (c < 0x80) {
str.=c;
} else if (c < 0x800) {
str.=chr(0xC0 | c>>6);
str.=chr(0x80 | c & 0x3F);
} else if (c < 0x10000) {
str.=chr(0xE0 | c>>12);
str.=chr(0x80 | c>>6 & 0x3F);
str.=chr(0x80 | c & 0x3F);
} else if (c < 0x200000) {
str.=chr(0xF0 | c>>18);
str.=chr(0x80 | c>>12 & 0x3F);
str.=chr(0x80 | c>>6 & 0x3F);
str.=chr(0x80 | c & 0x3F);
}
return iconv('UTF-8', 'GB2312', str);
}
?>




或者是




function unescape(str) {
str = rawurldecode(str);
preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",str,r);
ar = r[0];
print_r(ar);
foreach(ar as k=>v) {
if(substr(v,0,2) == "%u")
ar[k] = iconv("UCS-2","GB2312",pack("H4",substr(v,-4)));
elseif(substr(v,0,3) == "&#x")
ar[k] = iconv("UCS-2","GB2312",pack("H4",substr(v,3,-1)));
elseif(substr(v,0,2) == "&#") {
echo substr(v,2,-1)."
";
ar[k] = iconv("UCS-2","GB2312",pack("n",substr(v,2,-1)));
}
}
return join("",ar);
}
str = "TTL&#20840;&#22825;&#20505;&#33258;&#21160;&#32858;&#28966;";
echo unescape(str); file://out TTL全天候自动聚焦





利用javascript来转换






Unicode

文本原型:




转换代码:




正向转换
onclick="modi_str()" value=" 确 定 ">

onclick="document.all.text.method.checked?document.all.text.encode.select():document.all.text.decode.select()" value=" 全 选 ">




下面是一个显示所有全角半角的字体的查看例子






onclick=showUni(32,126)>
onclick=showUni(65281,65374)>
onclick=showUni(19968,40869)>
onclick=showUni(63744,64045)>
onclick=showUni(12353,12435)>
onclick=showUni(12449,12534)>
onclick=showUni(44032,55203)>

自定义: -
onclick=showUni(parseInt(document.all.min.value),parseInt(document.all.max.value))>





下面是一个查表(gb2312),转换gb2312到utf8的例子, 现在有iconv函数,这个已经没有太大的意义了,




function gb2utf8(gb){
if(!trim(gb)) return gb;
filename="gb2312.txt";
tmp=file(filename);
codetable=array();
while(list(key,value)=each(tmp))
codetable[hexdec(substr(value,0,6))]=substr(value,7,6);
utf8="";
while(gb) {
if (ord(substr(gb,0,1))>127) {
this=substr(gb,0,2);
gb=substr(gb,2,strlen(gb)-2);
utf8.=u2utf8(hexdec(codetable[hexdec(bin2hex(this))-0x8080]));
}else{
this=substr(gb,0,1);
gb=substr(gb,1,strlen(gb)-1);
utf8.=u2utf8(this);
}
}
return utf8;
}
function u2utf8(c){
str="";
if (c < 0x80) {
str.=c;
} else if (c < 0x800) {
str.=chr(0xC0 | c>>6);
str.=chr(0x80 | c & 0x3F);
} else if (c < 0x10000) {
str.=chr(0xE0 | c>>12);
str.=chr(0x80 | c>>6 & 0x3F);
str.=chr(0x80 | c & 0x3F);
} else if (c < 0x200000) {
str.=chr(0xF0 | c>>18);
str.=chr(0x80 | c>>12 & 0x3F);
str.=chr(0x80 | c>>6 & 0x3F);
str.=chr(0x80 | c & 0x3F);
}
return str;
}
?>









































添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.