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,1)==239 and string.byte(ret,2)==187 and string.byte(ret,3)==191ret=string.char( string.byte(ret,4,string.len(ret)) )endreturn 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')"
转载于:https://www.cnblogs.com/ayanmw/p/6700842.html
lua去掉字符串中的UTF-8的BOM三个字节相关推荐
- C# 使用正则表达式去掉字符串中的数字
C# 使用正则表达式去掉字符串中的数字 /// <summary> /// 去掉字符串中的数字 /// </summary> /// <param name=" ...
- C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字
/// 去掉字符串中的数字 public static string RemoveNumber(string key) { return Regex.R ...
- php去字符串空格,php怎么去掉字符串中空格
php去掉字符串中空格的方法:1.使用正则表达式删除字符串中间的空格及去除字符串首尾空格:2.使用str_replace和strtr函数删除字符串中间的空格:3.使用trim函数去除一个字符串两端空格 ...
- js去掉字符串中的所有空格
1.使用js去掉字符串中的所有空格 1.1.定义一个去空格函数方法 function Trim(str,is_global){var result;result = str.replace(/(^\s ...
- php取掉字符串第一位支付,php怎样去掉字符串中的第一个字符
php去掉字符串中的第一个字符的方法:可以利用substr()函数来实现.substr()函数可以返回字符串的提取部分,如果失败则返回false,或者返回一个空字符串. substr() 函数返回字符 ...
- C#如何去掉字符串中所有空格
由于空格的ASCII码值是32,因此,在去掉字符串中所有的空格时,只需循环访问字符串中的所有字符,并判断它们的ASCII码值是不是32即可.去掉字符串中所有空格的关键代码如下: testCharEnu ...
- ios去掉字符串中的某个字符_iOS如何过滤掉文本中特殊字符
如果需要去掉字符串中特殊的字符可以调用NSString的 stringByTrimmingCharactersInSet的方法: - (NSString *)stringByTrimmingChara ...
- 去掉字符串中的所有空格
要去掉字符串中所有的空格,思路很自然:碰到一个空格,将其删掉,然后后面的字符前移,但当空字符比较多的时候,总这么移动,难道不复杂么?还是想想另外的办法吧. 上面的方法时间复杂度比较高,下面,我们用空间 ...
- java去掉字符串的空格_如何去掉字符串中的空格?
问题阐述 去掉字符串首尾的空格非常简单,使用trim()方法即可实现,但是如果要去掉字符串中的空格,应该怎么实现呢? 专家解答 Java 中没有提供直接去除字符串中空格的方法,要想去除字符串中的空格, ...
最新文章
- 关于vmware workstation10常见问题
- linux top交叉编译_Linux 系统下ARM Linux交叉编译环境crosstool工具
- GitHub.com上的那些东西你都知道什么意思吗?
- java 一个整数的位数字_Java 输入一个整数,计算它各位上数字的和。(注意:是任意位的整数)...
- 避免从单体到分布式单体
- c 输出空格_C/C++知识分享:C++常用内置函数你会几个,使用过几次呢?
- 太极图正确画法_认识道教太极图,了解正规画法
- java中priorityqueue_详解JAVA中priorityqueue的具体使用
- (3)通过输入参数(测量数据)构建三维体模型(02)
- Python爬虫之(四)urllib库的高级用法
- php传引用和全局变量
- 【大数据部落】R语言基于决策树的银行信贷风险预警模型
- yum安装Elasticsearch5.x
- 【优化算法】闪电连接过程优化算法(LAPO)【含Matlab源码 1444期】
- 20多岁的一无所有,其实是理所应当的
- Flexbox中英文手册
- PDF	全部转为图片再用百度AI接口识别表格
- 如何扩大电脑c盘分区,c盘空间不足怎么扩容
- 构建风控评分卡模型介绍(WOE/KS/ROC)
- 模拟买一台计算机及装机心得,装机模拟器显卡及处理器超频影响因素分析 超频体验心得_游侠网...