我有csv文件,java应用程序和数据库,我从我的java应用程序中读取csv文件 在一些操作之后,我将文件一个接一个地插入到数据库中,但是没有正确插入像ŠĐŽĆČ这样的字符。我将数据库设置为utf-8默认排序规则。我通过测试意识到,当我使用ANSI编码设置文件时,一切正常(ŠĐŽĆ正确插入数据库)但编码时UTF-8字符未正确插入。问题是我必须插入到DB中的文件必须以UTF-8编码。 你能帮我解决这个问题吗?
答案 0 :(得分:0)
如果没有更多细节,很难具体说明,但有几件事情会浮现在脑海中:
1)如果我理解正确,您说您的CSV是UTF8吗?你确认这个假设是正确的吗?在相关的说明中,鉴于您认为它是UTF-8,您如何将该文件加载到Java中?
注意,Java的文件阅读器使用系统的默认字符编码。它不一定是UTF-8,您可以检查是否打印System.getProperty("file.encoding");
。
我倾向于不依赖于此并按照以下已知编码加载:
FileInputStream fis = new FileInputStream("myfile.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
...
2)数据库归类与指定字符集不同。 (注意,如果你还提到了数据库客户端,它会很方便)。整理涉及文本的排序/排序。您通常需要指定字符集。如何做到这一点取决于您的数据库。