搜索
aardio官方社区 门户 查看主题

分享一个获取网页源码时候去除bom的函数

发布者: renqiang | 发布时间: 2014-2-26 15:16| 查看数: 1439| 评论数: 8|帖子模式


  1. function removeBom(str){
  2.         var a = ..string.sub(str,1,1);
  3.         var b = ..string.sub(str,2,2);
  4.         var c = ..string.sub(str,3,3);
  5.         a = ..string.unpack(a);
  6.         b = ..string.unpack(b);
  7.         c = ..string.unpack(c);
  8.         if(a == 239 && b==187 && c==191)
  9.         str = ..string.right(str,-4);
  10.         return str;
  11. }
复制代码

最新评论

auaau 发表于 2014-2-26 15:28:50

s[1] 就可以直接取第一个字节的字节码,不需要写那么复杂。 最基础的语法文档还是要看的。 移除BOM 参考一下 web.json 里的源码 [cod

s[1] 就可以直接取第一个字节的字节码,不需要写那么复杂。
最基础的语法文档还是要看的。

移除BOM 参考一下 web.json 里的源码
  1. if(  s[1] == 0xEF  && s[2] == 0xBB && s[3] == 0xBF ){
  2.         s = string.right(s,-4) ;
  3.         s = string.fromto(s);
  4. }
复制代码
renqiang 发表于 2014-2-26 15:32:16

{:victory:}

auaau 发表于 2014-2-26 15:32:47

BOM是文件编码,并不是用于网络的,所以网页返回BOM是错误的,某些网页浏览器可能会显示不正常。

BOM是文件编码,并不是用于网络的,所以网页返回BOM是错误的,某些网页浏览器可能会显示不正常。
renqiang 发表于 2014-2-26 15:37:14

所以用innet.whttp获取的网页源代码,我们要先判断是否有bom,如果有就删除了

所以用innet.whttp获取的网页源代码,我们要先判断是否有bom,如果有就删除了
auaau 发表于 2014-2-26 15:52:45

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=64765&ptid=11644][c

renqiang 发表于 2014-2-26 15:37
所以用innet.whttp获取的网页源代码,我们要先判断是否有bom,如果有就删除了

一般不会有这个情况,如果是自己写的服务端,在服务端移除较好,
另外用 web.rest.client().request("网址") 会自动移除UTF-8 BOM
renqiang 发表于 2014-2-26 15:57:53

{:3_41:}好的,谢谢你auaau

好的,谢谢你auaau
ejzhang 发表于 2018-3-26 13:06:53
auaau 发表于 2014-2-26 15:28
s[1] 就可以直接取第一个字节的字节码,不需要写那么复杂。
最基础的语法文档还是要看的。

这样是不是更简单?
  1. s = string.replace(s, '^\xef\xbb\xbf', "" );
复制代码
Jacen.He 发表于 2018-3-26 17:07:23
ejzhang 发表于 2018-3-26 13:06
这样是不是更简单?


BOM有多种,参考 fsys.codepage

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-4-22 11:01 , Processed in 0.062503 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表