CSV文件导入数据库中文乱码(已解决)

本文介绍了一种解决CSV文件中文乱码的方法,通过将CSV文件转换为UTF-8编码,实现顺利导入数据库的过程。具体步骤包括更改文件后缀名、调整编码方式等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做好的CSV直接导入数据库,中文是这样的

��������ʨ��һ��������è�Ĵ����

目前的解决办法,粗暴简单

  1. 把.csv后缀改成.txt
  2. 打开txt,选择另存为,编码方式改成UTF-8
  3. 把.txt后缀改为.csv
  4. 导入,成功!

为啥Excel就不能直觉保存UTF-8呢,它都那么强大了

### 使用Java将CSV文件数据导入数据库 #### 方法概述 在实际开发中,经常遇到需要将CSV文件中的数据导入数据库的情况[^1]。一种常见的方式是在Java应用程序中处理此操作,通常涉及以下几个方面: - **读取CSV文件**:利用第三方库如OpenCSV来解析CSV文件的内容。 - **连接数据库**:使用JDBC驱动程序建立与目标数据库的连接。 - **执行批量插入**:准备SQL语句并高效地向数据库提交大量记录。 #### 示例代码展示 下面是一个简单的例子,展示了如何通过Java实现上述过程: ```java import com.opencsv.CSVReader; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; public class CsvToDatabase { private static final String DB_URL = "jdbc:mysql://localhost:3306/testdb"; private static final String USER = "root"; private static final String PASS = "password"; public void importCsv(MultipartFile file, String tableName) throws Exception { try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); CSVReader reader = new CSVReader(new InputStreamReader(file.getInputStream())); PreparedStatement pstmt = prepareStatement(conn, tableName)) { String[] nextLine; while ((nextLine = reader.readNext()) != null) { int index = 1; for (String field : nextLine) { pstmt.setString(index++, field); } pstmt.addBatch(); } pstmt.executeBatch(); // 执行批处理命令 } } private PreparedStatement prepareStatement(Connection connection, String tableName) throws Exception { StringBuilder sqlBuilder = new StringBuilder("INSERT INTO "); sqlBuilder.append(tableName).append("(column1, column2, ...) VALUES (?, ?, ...)"); return connection.prepareStatement(sqlBuilder.toString()); } } ``` 这段代码片段定义了一个名为`CsvToDatabase`类,其中包含了用于从MultipartFile对象读取CSV内容并将这些数据写入MySQL数据库表的方法`importCsv()`[^2]。注意,在真实的应用场景下还需要考虑异常处理、资源管理等问题。 对于可能出现的字符编码问题,比如中文乱码现象,则可以通过设置正确的字符集参数来解决这个问题。例如,在加载数据时可以指定字符集为UTF-8以确保正确解释非ASCII字符[^3]。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

immocha

人生得意须尽欢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值