lua去掉字符串中的UTF-8的BOM三个字节
废话不多说,还是先说点吧,项目中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')"
lua去掉字符串中的UTF-8的BOM三个字节的更多相关文章
- 去掉字符串中的空格 JS  JQ  正则三种不同写法
		
<script> function trim(str) { return str.replace(/(^\s*|\s*$)/g, "") } console.log(t ...
 - C++去掉字符串中首尾空格和所有空格
		
c++去掉首尾空格是参考一篇文章的,但是忘记文章出处了,就略过吧. 去掉首尾空格的代码如下: void trim(string &s) { if( !s.empty() ) { s.erase ...
 - C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字
		
/// 去掉字符串中的数字 public static string RemoveNumber(string key) { ...
 - 三种java 去掉字符串中的重复字符函数
		
三种java 去掉字符串中的重复字符函数 public static void main(string[] args) { system.out.println(removerepeatedchar( ...
 - 正则匹配去掉字符串中的html标签
		
1.得到超链接中的链接地址: string matchString = @"<a[^>]+href=\s*(?:'(?<href>[^']+)'|"&quo ...
 - C# 使用正则表达式去掉字符串中的数字
		
/// <summary>/// 去掉字符串中的数字/// </summary>/// <param name="key"></param ...
 - 【PHP函数】PHP 去掉字符串中的转义符号
		
PHP字符串中的转义符号 string stripslashes ( string $str ) //去掉字符串中的反斜线字符.若是连续二个反斜线,则去掉一个,留下一个.若只有一个反斜线,就直接去掉.
 - C# .net 使用正则表达式去掉字符串中的数字
		
/// <summary>/// 去掉字符串中的数字/// </summary>/// <param name="key"></param ...
 - 《程序员代码面试指南》第五章 字符串问题 去掉字符串中连续出现k 个0 的子串
		
题目 去掉字符串中连续出现k 个0 的子串 java代码 package com.lizhouwei.chapter5; /** * @Description: 去掉字符串中连续出现k 个0 的子串 ...
 
随机推荐
- tensorflow-安装
			
1.pip安装(最好在虚拟环境中安装) →更新pip:pip install --upgrade pip →安装最新版tensorflow(GPU):pip install tensorflow-gp ...
 - git填坑笔记
			
Counting objects: 3, done.Writing objects: 100% (3/3), 203 bytes | 0 bytes/s, done.Total 3 (delta 0) ...
 - WinAFL
			
winafl 标签(空格分隔): fuzz 构成 afl-fuzz.c 主模块 读取文件 维护testcase queue 进行mutate fuzz_one 评估代码覆盖率 执行遗传算法 更新界面 ...
 - 接口隔离原则(Interface Segregation Principle, ISP)
			
使用多个专门的接口,而不使用单一的总接口 接口隔离有两种定义: Clients should not be forced to depend upon interfaces that they don ...
 - lldp学习
			
http://support.huawei.com/enterprise/docinforeader!loadDocument1.action?contentId=DOC1000088818& ...
 - webpack 模块标识符(Module Identifiers)
			
让我们向项目中再添加一个模块 print.js: project webpack-demo |- package.json |- webpack.config.js |- /dist |- /src ...
 - C#连接oracle连接字符串
			
/// <summary> /// Oracle 的数据库连接字符串. /// </summary> private const String connString = @&q ...
 - 002 Spark的编译
			
一:不编译 1.不编译的做法 在公司里可能需要编译,但是如果为了简单的学习就不必编译,直接在官方下载即可. 截图为: 二:编译\ 1.下载 http://archive.cloudera.com/cd ...
 - PHP通过PDFParser解析PDF文件
			
之前一直找到的资料都是教你怎么生成pdf文档,比如:TCPDF.FPDF.wkhtmltopdf.而我碰到的项目里需要验证从远程获取的pdf文件是否受损.文件内容是否一致这些问题,这些都不能直接提供给 ...
 - PyInstaller打包python脚本的一些心得
			
PyInstaller打包python脚本的一些心得 因为在公司经常要帮同事做一个从excel表格中提取出需要的内容的重复工作,比较繁琐还容易出错:于是就想着要写个程序,但是同事又不可能在电脑上也装上 ...