JdbcTemplate 不将结果映射到映射:与 windows ascii 相关
JdbcTemplate do not mapping result to map : related with windows ascii
我从 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
我不确定,但在我的实验中,
LOAD DATA LOCAL INFILE
in Windows 会产生一些奇怪的字符。
- 在 OSX 或 Linux 中执行相同的查询(在我的例子中,CentOS mysql 客户端)看起来很好。(不要插入像
^M
这样的字符)
我从 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
我不确定,但在我的实验中,
LOAD DATA LOCAL INFILE
in Windows 会产生一些奇怪的字符。- 在 OSX 或 Linux 中执行相同的查询(在我的例子中,CentOS mysql 客户端)看起来很好。(不要插入像
^M
这样的字符)