前提环境:
日文windows系统平台下
php程序调用google翻译api,将日文翻译成英文,并且生成英语版csv后,部分出现乱码,导致插入postgre数据库出错。
原由及解决方案:
调用google翻译api时,根据设置的参数,翻译返回的应该是utf-8编码的字符。但由于翻译的数据长度和网络原因,翻译返回的肯能含有其他(utf-8以外)编码的字符。当以utf-8编码的数据插入数据库时出错。
解决方法,可将翻译后字符在生成csv文件前,也就是写入文件前将字符转码:$tempwrite = mb_convert_encoding($tempwrite, "UTF-8", "shift_jis");然后将fwrite($fw, $tempwrite . "/n")。
此问题和解决方案是在日文windows系统平台下,其他操作系统平台下解决思想可参照。