【发布时间】:2017-09-28 13:49:06
【问题描述】:
我从MSSQL 获得了一个转储文件。它使用euckr 编码,并具有一些Windows ascii 字符,例如^F、^D、M。
我想做的是……
-
LOAD DATA LOCAL INFILE '{My CSV FILE}' INTO TABLE '{TARGET TABLE}' CHARACTER SET euckr FIELDS TERMINATED BY '|:'- 将 csv 推送到 MYSQL - 在java源代码上使用
jdbcTemplate从MYSQL中读取数据
LOAD ...之后,我可以在workbench中看到数据,看起来很正常。(它没有显示我上面提到的任何特殊字符。)
但是,当执行jdbcTemplate.queryForMap 时,它无法将结果推送到Map,我认为是MS ascii 的原因。
错误消息是(我输入了这个,因为 Windows 控制台无法复制)
org.springframwwork.dao.TransientDataAccessResourceException:
PreparedStatedmentCallback; SQL [SELECT * FROM TARGET_TABLE];
Value '^A4 data1 1999-00-00^Fabc^D0000^A0^@...'
如何消除这些特殊字符?
- 如果没有这些,我是否请求新的 MSSQL 转储文件? (不知道在MSSQL中能不能消除。我对MSSQL没有经验)
- 在jdbctemplate映射结果之前有没有做一些工作?
谢谢。
仅供参考,
mysql编码为UTF8,版本为5.6.35
【问题讨论】:
标签: mysql sql-server ascii special-characters jdbctemplate