提数平台csv文件用excel打开中文乱码

解决背景:
utf8的bom头由\xEF,\xBB,\xBF组成
Excel在读取csv的时候是通过读取文件头上的bom来识别编码的,如果文件头无bom信息,则默认按照unicode编码读取。(这个bom是微软自己定义的一种文件头部协定,顾名思义存储在文件头部,存储内容就是标识文件编码的信息。)
而我们生成csv的平台不一定遵循微软的bom协议,导致如果输出非unicode编码的csv文件(例如utf-8),并且没有生成bom信息的话,Excel自动按照unicode编码读取,就会出现乱码问题了。
掌握了这点相信乱码已经无法阻挡我们前进的步伐了:只需将非unicode编码的csv文件,用文本编辑器(推荐notepad++)打开并转换为带bom的编码形式(具体编码方式随意),问题解决

解决办法:
impala-shell或者mysql提出来的数据都是无bom的utf-8格式
需要在提数脚本最后加入如下语句:
例如:    sed -i '1s/^/\xEF\xBB\xBF/g'  /data/bidb_exp/exp_data/$file        (在csv文件行首加入bom头) 

猜你喜欢

转载自blog.csdn.net/weixin_39445556/article/details/80310588
今日推荐