JdbcTemplate 不将结果映射到映射:与 windows ascii 相关

JdbcTemplate do not mapping result to map : related with windows ascii

我从 MSSQL 得到了一个转储文件。它使用 euckr 编码并具有一些 windows ascii 字符,例如 ^F^DM.

我想做的是...

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^@...' 

如何消除这些特殊字符?

谢谢。

仅供参考, Mysql编码为UTF8,版本为5.6.35

我不确定,但在我的实验中,

  • LOAD DATA LOCAL INFILE in Windows 会产生一些奇怪的字符。
  • 在 OSX 或 Linux 中执行相同的查询(在我的例子中,CentOS mysql 客户端)看起来很好。(不要插入像 ^M 这样的字符)