废话不多说,还是先说点吧,项目中lua读取的text文件如果有BOM,客户端解析就会报错,所以我看了看,任务编辑器swGameTaskEditor 在写入文件的时候,也不知道为什么有的文件就是UTF-8BOM格式;但一般都是 UTF-8 无BOM的。

还是从lua改起来吧。搜了一搜,没搜索到直接可以使用的代码。

本来想用

    string.gsub(mainString,findString,replaceString,num)

来替换\xEFBBBF为空。不过 \xEFBBBF 这种表示方法,lua貌似不认,会报错,加上引号怎么就成了字符 EFBBBF了呢?

干脆找找 lua 是如何处理二进制文件的。

找了点资料,没用二进制,还是用string本身的功能来实现的:

-- 检测前三个字节是否是 EF BB BF 也就是BOM标记;如果是就去掉,只保留后面的字节。
function TryRemoveUtf8BOM(ret)
if string.byte(ret,)== and string.byte(ret,)== and string.byte(ret,)==
ret=string.char( string.byte(ret,,string.len(ret)) )
end
return ret;
end

这样就好了。随时都可以调用了。。。可以加上 print("ret="..ret);打印出来,并用 vim - 通过管道来读取stdout,vim会显示

<feff>

可以使用下面语句测试:

lua -e "print('aaaa'..string.char(239,187,191)..'with utf-8 BOM bytes in content')"

最新文章

  1. Mybatis中#{}和${}传参的区别
  2. Head First设计模式之策略模式(Strategy Pattern)
  3. Java hashCode() 和 equals()的若干问题
  4. Angular实现瀑布流的库angular-deckgrid
  5. 实践Scrum
  6. /home 和 /root
  7. GAME——转圈游戏
  8. 文件I/O实践(3) --文件共享与fcntl
  9. LeetCode--030--串联所有单词的字串(java)
  10. 【mysql】mysql索引及优化学习
  11. PMS及APP安装过程
  12. Oracle 关联查询
  13. vue/cli 3.0 脚手架【进阶】 使用 amfe-flexible 和 postcss-px2rem进行移动端适
  14. 爆破root密码hash John the Ripper和hydra爆破ssh密码
  15. Java集合整理
  16. django时区设置以及全球用户如何各自显示当地时间
  17. NLayerAppV3--DDD之领域层
  18. WPF阴影效果(DropShadowEffect)(转载)
  19. Codeforces 809D. Hitchhiking in the Baltic States
  20. STL 源代码剖析 算法 stl_algo.h -- next_permutation

热门文章

  1. 洛谷P1638逛画展
  2. hdu1506单调栈的宽度
  3. cf220B莫队
  4. poj2352树状数组解决偏序问题
  5. 获取更新元素文本html()
  6. HDU2873 Bomb Game(二维SG函数)
  7. SqlServer索引带来的问题
  8. Python subprocess方法
  9. BZOJ1258 [CQOI2007]三角形tri 模拟
  10. Python爬虫之PyQuery使用(六)