专栏首页搜狗测试一个UTF-8 BOM的坑

一个UTF-8 BOM的坑

小编前两天在用jmeter测试,使用CSV Data Set Config设置批量参数时,发现源数据文件的第一条数据总是读取失败。一通研究,最后发现原来是UTF-8 BOM惹的祸。

什么是BOM?

BOM——Byte Order Mark,就是字节序标记,是为UTF-16和UTF-32 准备的

  • 在UCS 编码中有一个叫做”ZEROWIDTH NO-BREAK SPACE“的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。
  • UCS规范建议我们在传输字节流前,先传输字符”ZERO WIDTH NO-BREAK SPACE“。
  • 如果接收者收到FEFF,就表明这个字节流是大字节序的;如果收到FFFE,就表明这个字节流是小字节序的。因此字符”ZERO WIDTH NO-BREAK SPACE“又被称作BOM。

BOM的作用:

  • UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符”ZERO WIDTH NO-BREAK SPACE“的UTF-8编码是EF BB BF。所以如果接收者收到以EFBB BF开头的字节流,就知道这是UTF-8编码了。

小编遇到的问题的原因:

  • 微软会在UTF-8文件中放置BOM,比如新建一个txt文档,输入中文,然后以UTF-8的格式进行保存,会自动带上BOM。(带BOM的UTF-8文件的开头会有U+FEFF,所以新建的空txt文件会有3字节的大小)
  • 使用jmeter的OS ProcessSampler,通过CSV Data Set Config批量传参时,源数据文件保存时默认带上了U+FEFF的文件头,导致第一行的数据无法识别。

解决办法:

  • 通过notepad++,将编码从UTF-8 BOM改成UTF-8然后保存就行了。

欢迎添加我们的搜狗测试微信号,与我们一起聊聊测试。

本文分享自微信公众号 - 搜狗测试(SogouQA)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 触类旁通Elasticsearch:安装

    输出如下,缺省的集群名称为elasticsearch,已经启动一个名为“yO9AEg-”的节点。

    用户1148526
  • salesforce零基础学习(九十二)使用Ant Migration Tool 实现Metadata迁移

    我们在做项目时经常会使用changeset作为部署工具,但是某些场景使用changeset会比较难操作,比如当我们在sandbox将apex class更改名字...

    用户1169343
  • Apache kylin概览

    Apache kylin 能提供低延迟(sub-second latency)的秘诀就是预计算,即针对一个星型拓扑结构的数据立方体,预计算多个维...

    用户1217611
  • RocketMQ 添加监控和系统告警通知

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blo...

    亦山
  • windows:icacls命令行修改文件使用默认继承的ACL及ant脚本实现

    版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net...

    用户1148648
  • Apache RocketMQ:简单消息示例

    通过三种方式来发送RocketMQ消息使用: 可靠的同步发送, 可靠的异步发送和单向传输。

    微风-- 轻许--
  • Java(9):浅谈WebCollector的数据抓取

    作为Java世界中小白的我(瑟瑟发抖的状态),在网络数据抓取这一块简直是一无所知.天无绝人之路,这时候我们老大向我推荐一个很好用的爬虫框架WebCollecto...

    平凡的学生族
  • XAMPP下载,安装及其配置

    首先需要下载XAMPP,下载这个软件的时候需要注意一下下面这个页面选择中国,否则下载速度将不能忍受。

    zy010101
  • 使用 JMeter 进行压力测试

    压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据...

    庞小明
  • 让Hive支持行级insert、update、delete

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/...

    用户1148526

扫码关注云+社区

领取腾讯云代金券