如何使用bash操作包含unicode(泰语)字符的CSV?

时间:2016-04-14 11:15:32

标签: bash csv ubuntu utf-8 thai

我有一个包含泰语关键字的Adwords转储,我将用它来加入来自其他数据库的数据。

理论上,我抓住文件,剪掉顶部和底部无用的线条,将其清理一下,然后将其作为新表上传到PostgreSQL。

实际上,即使文件在Excel和OpenOffice中正常打开,字符也会在路上(实际上从头开始)出现乱码。在我的本地机器(运行OSX)和服务器(运行Ubuntu)上都是如此。

首先,我已将我的语言环境设置为UTF-8:

 $ echo "กระเป๋า สะพาย คอนเวิร์ส"
 กระเป๋า สะพาย คอนเวิร์ส

然而,在CLI上查看CSV(让我们假设它只包含上面的字符串)给了我:

$ head file.csv    
#0@2 *02" -@'4#L* 

知道问题出在哪里?

1 个答案:

答案 0 :(得分:0)

原始文件编码错误。

$ file file.csv
file.csv: Little-endian UTF-16 Unicode English text

快速修复:

$ iconv -f UTF-16 -t UTF-8 file.csv
$ head file.csv
กระเป๋า สะพาย คอนเวิร์ส