关于将Excel导出成UTF-8编码的csv文件的问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于将Excel导出成UTF-8编码的csv文件的问题?相关的知识,希望对你有一定的参考价值。

现在遇到了一个比较麻烦的问题,始终没找到很好的解决方法。
需要把当前文件夹下面的所有EXCEL文件转换成utf8编码的csv文件。
现在是这样处理的:
第一步,用Excel另存为 .csv 格式;
第二步,用记事本打开 CSV 文件,然后另存为 UTF-8 格式
因为需要转换的文件比较多,这样处理效率太低了。

我想用vba把上述功能一步完成,拜托知道的朋友帮帮忙!
或者,有什么其他方法,也可以

设置方法:

设置office语言环境(以office 2003为例):

    开始菜单-Microsoft office- Microsoft office工具- Microsoft office 2003语言设置,将Microsoft office应用程序默认方式的语言设为"中文(简体)"。


    使用记事本打开CSV文件,文件-另存为,编码方式选择想要替换成的编码(如gbk)。

    保存完毕后,用EXCEL打开这个文件就会正常显示。

【编码方式讲解】

(1)ANSI编码

不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。 当然对于ANSI编码而言,0x00~0x7F之间的字符,依旧是1个字节代表1个字符。这一点是ASNI编码与Unicode编码之间最大也最明显的区别。例如上面演示的文件中英文字母和数字并没有出现乱码的情况。

(2)Unicode编码

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

(3)UTF-8编码

UTF-8是UNICODE的一种变长字符编码又称万国码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如日文,韩文)。

参考技术A

csv文件可以用excel直接打开,


也可以用记事本打开。 乱码是因为csv文件的编码格式不符合要求,


你可以试试将它转换为ANSI格式后再打开。 转换方法:用记事本打开后直接另存为,在下面编码格式处选择ANSI或UTF-8后,点击确定后就可以了。

参考技术B 试试按键精灵 参考技术C

首先将excel文件另存为.csv格式,这种格式在Java中可以用gbk解码,然后将解码的文件编码为utf-8 的文件不就行了嘛。看图:

java写的excel文件转csv文件脚本遇到中文就会乱码

如图,读excel用的是POI包,写CSV用的是csvwriter包
其他字符串数字都不会乱码,为什么中文会乱码,脚本在linux系统操作
补充下,乱码都是问号,编码应该是大众的

这个需要看具体问题了,CSV也是有多种格式的,有种格式UTF-8,还有中UTF-8 no bom

看看格式不同处

文件头多了这个东西,你看看你的CSV中包含这个不,如果包含就是这个问题了

参考技术A 在将数据数据写入csv之前先调用字符转换函数,将字符流的编码转换为UTF-8本回答被提问者采纳 参考技术B linux的编码和window编码不一样的 很纠结的这个

以上是关于关于将Excel导出成UTF-8编码的csv文件的问题?的主要内容,如果未能解决你的问题,请参考以下文章

plsql导出csv数据是空白

如何将csv文件转换成Ansi编码的文件?

哪种编码可以在 Mac 和 Windows 上使用 Excel 正确打开 CSV 文件?

mysql问题处理记录

java写的excel文件转csv文件脚本遇到中文就会乱码

csv文件转换成excel的方法