【发布时间】:2016-10-01 12:06:11
【问题描述】:
我从 S3 服务器获取 CSV 并使用 java 将其插入 PostgreSQL。
S3Object object = s3Client.getObject(new GetObjectRequest(bucketName, key));
BufferedReader reader = new BufferedReader(
new InputStreamReader(object.getObjectContent())
);
对于某些行,列中的值包含特殊字符 �。我尝试将编码 UTF-8、UTF-16 和 ISO-8859-1 与 InputStreamReader 一起使用,但没有成功
当使用编码 WIN-1252 时,数据库仍然显示一些特殊字符,但是当我将数据导出到 CSV 时,它显示的字符与我在原始文件中找到的相同。
但是当我在记事本中打开文件时,字符很好,但是当我在 excel 中打开它时,会出现相同的特殊字符。
【问题讨论】:
-
问题陈述不清楚。请显示您用于将数据插入数据库的代码。您将 PostgreSQL 客户端编码设置为哪个值?什么是 PostgreSQL 数据库编码?您在原始文件中找到的字节是什么?您如何以及使用哪种客户端编码再次从数据库中导出数据?第二个导出的文件中有哪些字节?
-
另外,你能举个例子吗?即使您不能 100% 确定编码,我们也可能会根据实际字符确认您的假设。
标签: postgresql encoding amazon-s3