Linux导出到window的乱码处理方法
##查看系统使用的编码
locale
##查看当前系统支持的所有语言类型
locale -a
##查看当前系统所使用的语言类型
echo $LANG
##临时通过变量进行修改
LANG=“zh_CN.UTF-8”
##centos系统中永久修改,不同系统的语言配置文件存放文件可能不一样,可以查看/etc/profile.d/lang.sh文件信息
/etc/locale.conf
iconv命令的使用
用法:iconv [option…] [file…]
常用参数
参数 | 描述 |
---|---|
-f/--from-code=name | 原始文件的编码 |
-t/--to-code=name | 输入文件的编码 |
-l/--list | 列出所有编码字符集 |
-c | 从输出中省略缺省字符 |
-o/--outfile=file | 输出文件 |
-s/--silenta | 安静输出 |
--verbose | 打印输出进程信息 |
-?/--help | 帮助信息 |
-V/--version | 版本信息 |
问题:
##主要是选择导出编码选择不合适导致的
iconv: illegal input sequence at position 35567
Linux到window中文乱码的处理
方法1.使用iconv进行编码转换
iconv -f utf8 -t gb18030 table_information.txt > tmp.txt
方法2.使用Notepad++中的编码进行转换
打开table_information.txt ----> 编码 ----> 使用UCS-2 Little Endian编码 —> 重新保存
window系统下打开CSV和Excel格式自动丢失时间精度的问题
1.创建一个.csv文件
2.通过导入文件数据
3.某的日期数据列通过文本格式导入后
2017-06-08 08:18:06.000395
4.另存为csv格式文件后,重新打开csv文件发现格式发生变化,精度也丢失了
##csv的时间格式打开默认是window系统的格式
2017/6/8 8:18:06
5.时间毫秒精度可以通过自定义的格式进行
yyyy-mm-dd hh:mm:ss.000
6.时间微妙精度
在linux下直接通过将\t替换成逗号后,转成csv文件即可,然后可以导入postgresql,从而不会引起数据精度丢失的问题
cat table_information.txt |tr “\t” “,”>aa.csv
\COPY table_information from ‘/tmp/aa.csv’ csv header DELIMITER ‘,’;
ps:不要局限于一种思维方式下,总是想着如何在window下打开csv保存如何精度不丢失。但是,实际问题解决中,并一定需要window下操作。
Excel乱码处理:https://blog.csdn.net/try2find/article/details/104862581