故障报告
1. 问题(故障)描述
mysql -> sqlserver 全角字符乱码
2. 问题(故障)原因
在UTF-8编码里面存在一个特殊的字符,其编码是“0xC2 0xA0”,转换成字符的时候表现为一个半角空格,跟一般的半角空格(ASCII 0x20)不同的是它的宽度不会被压缩,所以排版中常能用到它。但是GB2312、Unicode之类并没有这样的字符,所以转换后前台会显示为“?”号,只是显示为问号而不是真正的问号,所以无法被替换!
把bsd文件用hexdump出来的16进制格式看,确实这个是ee 8d 97,这个在gbk里没有,所以转换不了,nvarchar是unicode格式,所以可以转
3. 解决
采用zcbus11月份之后的ddl解析版本,将varchar类型转换成NVARCHAR即可解决。
4. 参考
https://www.qqxiuzi.cn/bianma/zifuji.php
https://blog.csdn.net/weixin_43520832/article/details/84030994
文档更新时间: 2021-11-08 19:03 作者:阿力