非ISO扩展ASCII ASCII在DB中导入时赋予特殊字符

时间:2016-10-01 12:06:12

标签: postgresql encoding amazon-s3

我从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中打开它时,会出现相同的特殊字符。

1 个答案:

答案 0 :(得分:0)

所有PostgreSQL的东西都是无关紧要的。 PostgreSQL实际上可以处理任何编码。使用enca之类的实用程序检查数据,以确定其编码方式,然后将PostgreSQL会话设置为该编码方式。如果服务器使用相同的编码或某些Unicode编码,则应该可以正常工作。