前提環境:
日文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系統平臺下,其他操作系統平臺下解決思想可參照。