从CSV用Java mySQL插入特定的字符集
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从CSV用Java mySQL插入特定的字符集,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1309字,纯文字阅读大概需要2分钟。
内容图文
![从CSV用Java mySQL插入特定的字符集](/upload/InfoBanner/zyjiaocheng/884/90754d5894764b808595f1c159547206.jpg)
我有一个小问题,我正在使用连接到mySQL数据库的Java应用程序从CSV文件构建数据库.
CSV是ISO-8859-1编码的.
通过缓冲的文件读取器读取它,并使用String方法进行解析.
然后,这些字符串通过JDBC驱动程序引入到mySQL中.
问题是:调音中丢失了重音(这是法语应用程序).在mySQL数据库中,它们采用的格式不明,既不是UTF-8,也不是Latin-1 …
我的假设是,字符串被奇怪地编码,并且在重新插入时保持这种编码.如何在Java中为INSERT语句强制执行字符集?
解决方法:
您需要确保使用InputStreamReader和正确的字符集(这是文件本身之一,在这种情况下为ISO-8859-1)读取CSV.
BufferedReader reader = new BufferedReader(new InputStreamReader(input, "ISO-8859-1"));
您还需要确保JDBC连接字符串包含具有正确字符集的characterEncoding参数(这是创建表时使用的字符集,您尚未在MySQL数据库上弄清楚该字符集).如果它看起来像是Unicode字符集,则还需要添加参数useUnicode = true.
String url = "jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8&useUnicode=true";
您的下一个问题可能是如何确定我的数据库表正在使用哪个字符集?您可以使用SHOW命令执行此操作.它将包含有关字符集的信息.
SHOW CREATE DATABASE dbname; -- shows CREATE DATABASE statement.
SHOW CREATE TABLE dbname.tblname; -- shows CREATE TABLE statement.
就是说,与问题无关,您是否知道MySQL提供了内置的CSV导入功能,因此您不一定为此需要Java / JDBC?签出LOAD DATA INFILE command.您可以将CSV文件的字符集指定为命令参数,MySQL会担心转换本身是否正确.
内容总结
以上是互联网集市为您收集整理的从CSV用Java mySQL插入特定的字符集全部内容,希望文章能够帮你解决从CSV用Java mySQL插入特定的字符集所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。