我了解在处理RDS时我们无法进行INTO OUTFILE。
从我的研究中,我尝试了以下内容,
mysql -uusername -ppassword -hhost -default-character-set=utf8 dbname < select.sql | sed -e 's/\t/,/g' > test.csv
mysql -uusername -ppassword -hhost -default-character-set=utf8 dbname < select.sql | perl -F"\t" -lane 'print join ",", map {s/"/""/g; /^http://\d.+$/ ? $_ : qq("$_")} @F ' > test.csv
由于某种原因,如果我将select.sql中的select查询限制为某个数字,它会给我正确的结果,并且所有阿拉伯语的字词都保持不变,但是一旦我将限制增加1,编码就会变得混乱,所有的阿拉伯语措辞都变成了垃圾字符。
我已经检查过我运行的CentOS服务器是否将区域设置设置为UTF8,并且我还检查了数据是否正常,没有任何问题。
知道为什么会这样吗?
答案 0 :(得分:1)
显然,有一个列托管了一些BLOB数据类型的内容,导致编码在被转储到csv时被搞乱(可能是由于数据和混合字符的长度)因为它没有被使用而放弃该领域最终解决了这个问题。