iconv( "UTF-8", "gb2312//IGNORE" , $FormValues['a'])
ignore的意思是忽略轉換時的錯誤,發現iconv在轉換字符"—"到gb2312時會出錯,如果沒有ignore參數,所有該字符後面的字符串都無法被保存。
另外mb_convert_encoding沒有這個bug,所以最好的寫法是:
mb_convert_encoding($FormValues['a'], "gb2312", "UTF-8");
但是需要先enable mbstring 擴展庫。
也可以把mysql數據庫的collation設成utf-8就不用作轉換了