免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4167 | 回复: 11

字符编码问题 [复制链接]

论坛徽章:
0
发表于 2007-09-19 20:12 |显示全部楼层
有没人知道啊,快沉了我顶~

论坛徽章:
0
发表于 2007-09-19 20:49 |显示全部楼层
HTML Entity Character Reference 也叫 Numeric character reference (NCR)。其实就是 Unicode (UCS)。有没有分给?

论坛徽章:
0
发表于 2007-09-19 21:04 |显示全部楼层
原帖由 dz902 于 2007-9-19 20:49 发表
HTML Entity Character Reference 也叫 Numeric character reference (NCR)。其实就是 Unicode (UCS)。有没有分给?



这也简单一些了吧。关键是怎么和GB互换?搞定了送分哈

论坛徽章:
0
发表于 2007-09-19 21:39 |显示全部楼层
  1. function uni($str) {   
  2.     $ret = '';   
  3.     for($i=0;$i<mb_strlen($str,'utf-8');$i=$i+1) {   
  4.         $ret .= "&#" . uniord(mb_substr($str, $i, 1, 'utf-8')) . ";";   
  5.     }   
  6.     return $ret;   
  7. }   
  8. echo uni("海海家园");   
  9.   function unichr($u) {   
  10.     return mb_convert_encoding(pack("N",$u), mb_internal_encoding(), 'UCS-4BE');   
  11.   }   
  12.     function uniord($u) {   
  13.     $c = unpack("N", mb_convert_encoding($u, 'UCS-4BE', 'UTF-8'));   
  14.     return $c[1];   
  15.   }   
复制代码


  1. <script>   
  2. function unicode(s){   
  3.    var len=s.length;   
  4.    var rs="";   
  5.    alert(len);   
  6.    for(var i=0;i<len;i++){   
  7.       var k=s.substring(i,i+1);   
  8.       rs+="&#"+s.charCodeAt(i)+";";   
  9.    }   
  10.    return rs;   
  11. }   
  12.    
  13. function runicode(s){   
  14.    var k=s.split(";");   
  15.    var rs="";   
  16.    for(i=0;i<k.length;i++){   
  17.       var m=k[i].replace(/&#/,"");   
  18.       rs+=String.fromCharCode(m);   
  19.    }   
  20.    return rs;   
  21. }   
  22. //alert(unicode("我是一个神"));//我是一个神   
  23. //alert(runicode("我是一个神"));   
  24. </script>   
复制代码

  1. <script language="javascript" type="text/javascript">   
  2. var oSource = document.getElementById("source");   
  3. var oShow2 = document.getElementById("show2");   
  4. var oTt = document.getElementById("tt");   
  5.    
  6. function action(pChoice){   
  7. switch(pChoice){   
  8.   case "CONVERT_FMT1":   
  9.    oShow2.value = ascii(oSource.value);   
  10.    break;   
  11.   case "CONVERT_FMT2":   
  12.    oShow2.value = unicode(oSource.value);   
  13.    break;   
  14.   case "RECONVERT":   
  15.    oShow2.value = reconvert(oSource.value);   
  16.    break;   
  17. }   
  18. }   
  19.    
  20. function ascii(str){   
  21. return str.replace(/[^\u0000-\u00FF]/g,function($0){return escape($0).replace(/(%u)(\w{4})/gi,"\$2;")});   
  22. }   
  23.    
  24. function unicode(str){   
  25. return str.replace(/[^\u0000-\u00FF]/g,function($0){return escape($0).replace(/(%u)(\w{4})/gi,"\\u$2")});   
  26. }   
  27.    
  28. function reconvert(str){   
  29. str = str.replace(/(\\u)(\w{4})/gi,function($0){   
  30.             return (String.fromCharCode(parseInt((escape($0).replace(/(%5Cu)(\w{4})/g,"$2")),16)));   
  31.             });   
  32.                
  33. str = str.replace(/()(\w{4});/gi,function($0){   
  34.             return String.fromCharCode(parseInt(escape($0).replace(/(%26%23x)(\w{4})(%3B)/g,"$2"),16));   
  35.             });               
  36. return str;   
  37. }   
  38. </script>   
复制代码


这些怎么样?
参考 http://seaprince.cn/t/182/1/

论坛徽章:
0
发表于 2007-09-19 21:57 |显示全部楼层
php5省力点
  1. <?php
  2. echo mb_convert_encoding("一二三四五","HTML-ENTITIES","GBK");
  3. ?>
复制代码

论坛徽章:
0
发表于 2007-09-20 10:42 |显示全部楼层
可以直接转成UTF8的
iconv

论坛徽章:
0
发表于 2007-09-20 18:35 |显示全部楼层
5楼的那段代码不好用


原帖由 3227049 于 2007-9-19 21:57 发表
php5省力点
<?php
echo mb_convert_encoding("一二三四五","HTML-ENTITIES","GBK";
?>


还是这个比较方便,一个函数搞定,但手册上都没写这个用法,哪里有这方面的详细介绍呀?

[ 本帖最后由 powerpolly 于 2007-9-20 19:30 编辑 ]

论坛徽章:
0
发表于 2007-09-20 19:23 |显示全部楼层
原帖由 powerpolly 于 2007-9-20 20:35 发表
5楼的那段代码不好用




还是这个比较方便,一个函数搞定,但手册上都没写这个用法,哪里有这方面的详细介绍呀?


手册是有的:

http://php.net/mb_convert_encoding

论坛徽章:
0
发表于 2007-09-20 19:32 |显示全部楼层
汗,偶一直看本地的CHM档案。。。看来要与时俱进,经常去官网溜达才行呀

论坛徽章:
0
发表于 2007-09-20 19:41 |显示全部楼层
看看官网的说明吧,这函数 4.0.6 就有了。
你的手册是不是太旧了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP