Java 以编程方式将txt文件从ANSI转换为UTF-8

Java 以编程方式将txt文件从ANSI转换为UTF-8,java,encoding,utf-8,file,text-files,Java,Encoding,Utf 8,File,Text Files,我需要你的帮助。 我正在开发一个java应用程序,它将数据从txt文件转换到数据库中,问题是该文件具有ANSI编码,我无法更改,因为它来自我的应用程序外部,当我将数据写入数据库时,我在其中得到了一些“?”。 我的问题是,我如何将从文件中读取的数据从ANSI转换为UTF-8,UTF-8可以处理这些weired符号。 我尝试了字节[]到字符串的转换,但没有成功。使用类似以下的OpenA: Reader reader = new InputStreamReader(inputStream, C

我需要你的帮助。 我正在开发一个java应用程序,它将数据从txt文件转换到数据库中,问题是该文件具有ANSI编码,我无法更改,因为它来自我的应用程序外部,当我将数据写入数据库时,我在其中得到了一些“?”。 我的问题是,我如何将从文件中读取的数据从ANSI转换为UTF-8,UTF-8可以处理这些weired符号。 我尝试了字节[]到字符串的转换,但没有成功。

使用类似以下的OpenA:

Reader reader = 
   new InputStreamReader(inputStream, Charset.forName(encodingName));
例如,您应该使用的编码名称取决于写入的文本文件。您可以找到Java6支持的编码列表。如果是英语系统,则可能是
windows-1252

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


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

如果我没弄错,您应该在打开输入流时使用UTF-8,如
new InputStreamReader(inputStream,“UTF-8”)
@MByD,非常感谢你的推荐,不幸的是,我尝试过,但对我无效,结果总是一样的。大家好,我找到了答案,感谢looot MByD,我不应该使用UTF-8作为编码,我应该使用输入编码,即“windows-1252”,现在没有更多的weiird符号