首先上报错信息:
Noticein ./libraries/charset_conversion.lib.php#106
iconv(): Detected an illegal character in input string
Backtrace
./libraries/charset_conversion.lib.php#106: iconv(
string 'gb2312',
string 'utf-8//TRANSLIT',
string ,
)
./libraries/import.lib.php#410: PMA_convertString(
string 'gb2312',
string 'utf-8',
string ,
)
./libraries/plugins/import/ImportCsv.class.php#240: PMA_importGetNextChunk()
./import.php#641: ImportCsv->doImport(array)
背景:使用mysql数据库的客户端sqlyog导入数据比较鸡肋,因此没有用这个客户端去做批量信息导入,而选择了,而这个更在导入数据是要选择字符集编码的,当数据中含有中文时间,不得不选择gbk或者gb2312,而更令人疑惑的是为啥没有GBK,因此当导入中文只能使用GB2312.
错误出错:导入数据有10w条数据,无法找到,因此只能从报错信息来找问题,这个报错信息,网上没有很好的解释以及怎么解决,这也是在这写这篇博文的原因。
从出错的表面理解,是在从UTF-8转gb2312时,出现的问题,因此想肯定是有什么东西转不了,而本次导入数据含有中文,因此考虑中文中有的字符无法转为国标312,却可以转为GBK。到这里下面写一下二者区别
GBK和GB2312区别:
GB2312是中国规定的汉字编码,也可以说是简体中文的字符集编码;GBK 是 GB2312的扩展 ,除了兼容GB2312外,它还能显示繁体中文,还有日文的假名。
写到这里估计好多朋友肯定知道原因了,肯定是繁体字影响的,日文咱们暂且扔一边,和中国人没关系。
举个例子:简体字:尚 ;繁体字:尙 。其他的就不列举了,因此知道了吧,从导入的数据来找找吧。
转载请注明出处~~