查看原文
其他

文本文件乱码问题及解决方案

走天涯徐小洋 走天涯徐小洋地理数据科学 2022-05-17

文本文件乱码问题及解决方案

GIS数据处理过程中,经常会遇到.csv类型的文件,有时经常发现里面的汉字是乱码,这个情况下怎么办呢?有什么办法能够正确的打开csv文件呢?下面就这个问题介绍几个简单的方法。

乱码问题的原因

乱码,主要是由于汉字在系统中的编码和在GIS软件中使用的编码不匹配。在ArcGIS属性表和互联网文件中,多使用UTF-8编码,而我们常用的windows系统中则一般使用的是ANSI编码,具体编码有啥区别我也不太清楚,感兴趣的同学可以自行百度了解。

由于ANSI说windows的系统编码和UTF-8汉字编码情况不一样,所以当我们直接使用EXCEL打开CSV文件时,就会出现乱码情况。

ArcGIS导出的csv文件,乱码了

如何让EXCEL能正确读取GIS导出的属性表

导出EXCEL格式

使用ArcGIS的Table to Excel工具,可以将GIS属性表正确导出,导出数据可以直接EXCEL打开,没有乱码。

使用Table to Excel工具导出EXCEL

文本编辑器改CSV编码

EXCEL有行数限制,对于大数据量的GIS数据库表,xlsx格式超百万行后就不支持了,还是需要使用CSV格式,这个情况下怎么办?

这个时候就需要改CSV文件的编码。使用NOTEPAD++或者其它带编码转换功能的文本编辑器软件,将编码转为ANSI编码即可。

UTF-8转ANSI编码

其它处理乱码的方法

出现乱码的文件还可以用QGIS或者R语言、Python等等编程的方法读取,下面介绍一下QGIS和R语言的读取和转换方法。

QGIS

QGIS是一个神器,不仅支持大数据量,而且支持众多编码。只要你内存够,CSV肯定打得开。

QGIS导入文本文件,默认的是system编码。

导入文本文件

由于QGIS认为的编码和数据实际编码不一致,就会发生乱码。

发生乱码

只需在QGIS图层属性中,将Data Source Encoding改为UTF-8即可正确读取。

正确读取

如果想用EXCEL打开的话,把数据导出,导出的时候编码选择system即可,再打开导出后的csv,就是正确的编码了。

导出数据

R语言读取

使用R语言读取,选择UTF-8编码,输出选择GBK,也可以让输出后的csv文件可以由EXCEL打开。

River <- read.csv(file = "River.csv",header =T, encoding = "UTF-8")
write.csv(River, file = "River2.csv", fileEncoding="GBK")



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存