问题描述:使用sqluldr2linux64.bin生成csv文件以后上传到页面展示,但是在页面上下载的时候不管是文件名还是文件内容都是中文乱码。PS:页面上传的时候默认字符集是UTF-8。

初步分析是字符集的问题,我检查了sqluldr2linux64.bin中的配置参数:charset=utf8,这个和页面接收文件默认字符集是完全一致的,理论上字符集不同才会导致中文乱码,我当时是百思不得其解。后来查阅了一下资料,才找到问题的关键,生成的csv文件,默认字符集就是GB2312,也就是说在生成csv的文件时设置的字符集参数charset和文件csv的格式已经不一样了。导致了中文乱码(这里提一句,这种情况在用office打开的时候是乱码,但是用WPS打开都是正常中文)。

接下来我把sqluldr2linux64.bin中的配置参数改成charset=zhs16gbk,然后重新生成csv文件,然而新的问题出现了,提示字符集参数无效(没来得及把问题截图=_=)。但是其他类似的脚本也用过配置过这个参数,所以配置这个字符集肯定是没有问题的,我又重新分析了一下sqluldr2linux64.bin的配置参数,对比另外字符集为charset=zhs16gbk的脚本找到了问题,query里面的sql语句存在中文,把中文替换成英文以后成功生成了csv,上传以后内容为正常中文。

但是(这个词经常出现在我此次的经历中),用中文命名的csv还是中文乱码,这个问题比较好解释,因为sqluldr2linux64.bin中的配置参数:charset=zhs16gbk,而页面上传默认字符集是utf8,页面字符集是无法更改的。这个时候只要再上传之前把文件的字符集改成utf8就可以了,如下图所示。

#将生成的csv文件压缩,节省上传时间
gzip *.csv
#将压缩的文件从GBK更改为UTF-8
convmv -f GBK -t UTF-8 --notest *.gz
sleep 600

当然本次解决这个问题的时候也有个意外的收获,我找到一个临时解决内容正常中文但是文件名中文乱码的方法,供大家参考。下载2345好压,找到下图所示的“更多代码页与设置”==>“UTF-8”,这样解压以后文件名就是正常中文,当然这个方法治标不治本,仅作一种参考方法。

shell脚本生成csv文件,但是解压乱码解决方案相关推荐

  1. shell脚本小工具之万能解压和压缩器---实现思路

    本人也是接触linux很久了.但是对系统的架构也是一知半解,平时的使用情况也就是一键安装lnmp,顶多装redis,自己一直都专注于web开发,很少去接触系统运维方面的知识.一直觉得linux是一个很 ...

  2. php用excel打开乱码,PHP生成CSV文件用Excel打开乱码问题_PHP教程

    今天有一同学问我为什么PHP生成CSV文件用Excel打开会出现乱码呢,下面小编来给大家找了一些常见的办法,希望此方法对各位朋友会有所帮助. 百度查证后得知 PHP生成UTF-8编码的CSV文件用Ex ...

  3. python打开csv文件乱码_python脚本解决csv文件用excel打开乱码

    import os path ='csv文件路径' targetPath = '转换编码保存路径' def getfiles(path): path_collection=[] for dirpath ...

  4. 西门子触摸屏脚本程序_西门子触摸屏利用VBScript脚本创建csv文件

    功能描述:利用VBScript脚本创建csv/txt文件 有时需要将PLC或运动控制器Simotion中的数据写到SD卡或U盘上.一种实现方法是,如果使用的是精致面板(comfort panel),可 ...

  5. 使用Java生成的ZIP压缩包解压时出现不可预料的压缩文件末端的解决方案

    使用Java生成的ZIP压缩包解压时出现不可预料的压缩文件末端的解决方案 问题描述: 如下图所示,在解压Java程序生成的ZIP压缩包时出现不可预料的压缩文件末端, 问题分袖: 出现上面的情况,大概有 ...

  6. POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解...

    http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...

  7. csv文件 java_Java生成CSV文件实例详解

    本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

  8. java 生成csv文件_Java生成CSV文件实例详解

    本文实例主要讲述了java生成csv文件的方法,具体实现步骤如下: 1.新建csvutils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

  9. java中csv文件怎么制作_Java生成CSV文件实例详解

    本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

最新文章

  1. 荣耀手机现在是鸿蒙,荣耀适配鸿蒙最新消息出现,华为不会让大家失望的
  2. Java编写胖老鼠的交易_猫和胖老鼠
  3. 我理解的session和cookie
  4. 【优化SQL Server循环更新、插入耗时长的问题】
  5. 泰安高考2021成绩查询,泰安高考成绩查询入口2021
  6. php inet pton,inet_pton 网络函数在PHP中的作用是什么
  7. Memo History Tracking History in Access 2007
  8. 【java】java 定时任务线程池 ScheduledThreadPoolExecutor 源码阅读
  9. Android程序设计报告总结,Android编程常用技巧实例总结
  10. 思科接入层交换机故障
  11. 四川省成都市谷歌高清卫星地图下载
  12. bp神经网络算法的优缺点,bp神经网络缺点及克服
  13. 解决File “D:\ProgramData\Anaconda3\lib\site-packages\keras\engine\saving.py“,相关问题
  14. local variable ‘count‘ referenced before assignment
  15. 详解示波器的三个主要参数:采样率,存储深度,带宽
  16. 「BUG记录」关于在安装AD9910 Evaluation Software过程中遇到的问题
  17. 手把手教你Vue从零撸一个迷你版MVVM框架
  18. Android解包打包system img的方法
  19. 研报:HTML5或将迎来爆发期
  20. Android ViewPager导航------平凡中有奇迹

热门文章

  1. Takeown、Cacls、Icacls-文件、文件夹夺权用法
  2. 微信小程序返回上一页并携带参数
  3. windows 10系统(64位或者32位)下使用Cisco Any Connect进行成功拨号
  4. 自学python能干些什么副业好-工作多年,总结出几个比较野的副业路子!
  5. 虚拟机克隆盘磁盘空间不足解决方法
  6. VMware虚拟机链接克隆和完整克隆区别
  7. 计算机毕业设计 机器视觉智能快递分拣系统
  8. POI 实现Excel导入数据库
  9. 数控机床只能采用计算机编程,数控机床是计算机在 《数控机床计算机编程及切削加工》实验教学的改革与实践...
  10. 用JavaScript实现的一些计算公式