我从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中打开它时,会出现相同的特殊字符。
答案 0 :(得分:0)
所有PostgreSQL的东西都是无关紧要的。 PostgreSQL实际上可以处理任何编码。使用enca
之类的实用程序检查数据,以确定其编码方式,然后将PostgreSQL会话设置为该编码方式。如果服务器使用相同的编码或某些Unicode编码,则应该可以正常工作。