背景

项目组做csv导出时,发现有些行的日期字段没办法自动识别,如下图所示

即使手工调整格式也不行

后面写了一个测试代码,对比问题行的二进制,发现有问题的单元格比没有问题的单元格多了3个字节;-17,-69,-65,转换成16进制就是0xEF,0xBB,0xBF。(问题行日期字段里面的值因为多了这三个字节,不能很好的被识别成日期。)
然后百度这三个字节,发现这个三个字节放在文件头可以解决csv中文乱码问题。

0xEF,0xBB,0xBF

在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。
Windows就是使用BOM来标记文本文件的编码方式的。

导出CSV后,时间字段无法自动识别-0xEF,0xBB,0xBF相关推荐

  1. 解决导出CSV后在EXCEL打开纯数字前面0丢失问题

    解决导出CSV后在EXCEL打开纯数字前面0丢失问题 参考文章: (1)解决导出CSV后在EXCEL打开纯数字前面0丢失问题 (2)https://www.cnblogs.com/linn/p/102 ...

  2. php 0xef 0xbb 0xbf,utf-8编码的csv文件,用excel打开乱码,解决办法,在输出前加 0xEF,0xBB,0xBF三个char...

    转自 http://blog.csdn.net/zcmssd/article/details/6086649 是由于输出的CSV文件中没有BOM. 什么是BOM? 在UCS 编码中有一个叫做" ...

  3. mysql导出csv格式去除字段中的\n\r

    第一种方法 在导出界面,打开csv自定义选项,勾选 "删除字段中的回车换行符" 选项 phpmyadmin版本是3.4 2.X版本没看到这个选项 第二种方法 UPDATE cata ...

  4. 淘宝助理导出CSV文件特殊字段详解

    淘宝助理导出的CSV文件有一些字段比较奇特,是程序员难以理解的,而业务操作员又不熟悉数据.现做一个详细解释: 销售属性组合 skuProps 短裤类目: 数据示例:29:1111:bm1:162720 ...

  5. C#导出CSV后首位数字0没了,大神们进来吧

    public static void ExportToCsv(System.Data.DataTable dt, string savaPath, string strName,bool saveco ...

  6. Java导出csv修正时间格式

    处理前导出的日期格式为:yyyy-M-d HH:mm 正确的应该是:yyyy-MM-dd HH:mm:ss 处理方案是在 时间数据两边增加 "\t" 有问题欢迎交流. thanks ...

  7. sqlite 导出CSV,身份证号码显示科学计数法

    网上搜索大量资料后,均不是sqlite 数据库解决办法. 如下解决办法: 1.sqlite 不支持concat ,故使用select  " ' " || 列名  from ***, ...

  8. java导出ansi csv_我也太牛了,解决了浏览器中,前台导出csv格式,UTF

    ExcellentExport.js的方法,利用base64下载文件.支持chrome ,opera,firefox. 于是决定拿来为我所用! 说明一下,这个js的好处是:一句js脚本,就能前台下载, ...

  9. php 导出csv设置列宽度,php数据库导出excel表格数据-php从数据库导出csv格式的Excel表格是,字段本身就......

    PHP如何将查询出来的数据导出成excel表格(最好做... $objPHPExcel->getActiveSheet()->getDefaultColumnDimension(A)-&g ...

最新文章

  1. android wear 兼容问题,【悲剧了】仅 1/4 安卓手机兼容 Android Wear - 爱应用
  2. oracle的quit命令,Oracle的启动和关闭
  3. Floating-point exception
  4. Anaconda:conda install packages error 详解channel 设置
  5. 利用java实现android项目结构API文档
  6. console.dir有很多浏览器,系统的兼容性问题,不要随便用!
  7. gather torch_浅谈Pytorch中的torch.gather函数的含义
  8. leetcode1052. 爱生气的书店老板(滑动窗口)
  9. WebServer起不来,如何查看原因
  10. MFC应用程序中指针的使用
  11. java 关闭进程_java在进程启动和关闭.exe程序
  12. 2021版:《人人都是产品经理》系列图书的说明
  13. html页面js跨域获取json数据,JS跨域获得Json的应用
  14. 用之前使用正常的keil工程调试程序时,一直卡在 0x00000000 的解决方案
  15. 如何给图片加水印?这三个图片加水印方法,帮你添加花式水印
  16. 2018最新4K Ultra HD/UHD视频剪辑/特效合成/调色图形工作站硬件配置
  17. 稻盛和夫的经营十二条
  18. 51单片机入门教程(1)——点亮一个LED灯
  19. k8s证书过期怎么办?
  20. 南大通用事务型数据库GBase 8s斩获2020年中国国际金融展“金鼎奖”

热门文章

  1. 如何向外行解释你为什么想打产品经理?
  2. 华为超融合一体机助力深圳海关业务性能大幅提升
  3. Muti-bin的一些相关函数和设置
  4. c语言裸函数,【逆向知识】裸函数(Naked函数)
  5. 工业机器人和无人机得到大量使用,人工智能开始降本增效
  6. 图像式物体尺寸测量算法设计
  7. Unicode排序编码表全部
  8. 【 OJ 】 HDOJ1035 迷宫类问题模拟走向 [ 32 ]
  9. 最全的Android开源项目集合(转)你想实现的我都有!
  10. 根据出生日期计算年龄(精确到天)