2011-05-31 112 views
9

我需要您的帮助。 我正在从一个java应用程序转换数据从一个txt文件到数据库,问题是该文件具有ANSI编码,我不能改变,因为它来自我的应用程序之外,当我写数据到数据库我有一些“???”内。 我的问题是,我如何将从ANSI文件读取的数据转换为可处理那些符号的UTF-8。 我试过Byte []来进行字符串转换,但它不起作用。以编程方式将txt文件从ANSI转换为UTF-8

+1

如果我找不到你,你应该在打开输入流时使用UTF-8,比如'new InputStreamReader(inputStream,“UTF-8”);' – MByD 2011-05-31 20:09:44

+0

@MByD,非常感谢你的推荐,我试过了,但它对我来说并不奏效,结果总是如此。 – wlegend 2011-05-31 20:35:20

+0

大家好,我找到了答案,并感谢一个失败的MByD,而不是使用UTF-8作为编码,我应该给输入编码至极“windows-1252”,现在noo更多的符号 – wlegend 2011-05-31 21:13:21

回答

6

使用打开decoding Reader像这样的:

Reader reader = 
    new InputStreamReader(inputStream, Charset.forName(encodingName)); 

Exaclty其编码你应该使用名称取决于which "ANSI" encoding文本文件写于你可以找到的Java 6 here支持的编码清单。如果它是英文系统,它可能是windows-1252

将数据正确写入数据库取决于正确配置数据库并(有时)为JDBC驱动程序提供正确的配置。

您可以在herehere中阅读有关字符编码处理的更多信息。