有經常使用表單進行傳遞字符串到數據庫的經驗的朋友可能會遇到這樣一個問題:數據庫獲取到前台頁面顯示都是正常的(不是亂碼),但是當使用表單傳遞值到執行頁面插入到數據庫的時候會出現無法插入,一般有如下提示:Data too long for column ‘表名’ at row 1 的提示,或者成功插入,但是顯示出來中文是亂碼。如果出現以上情況,,可以使用以下方法:
1、在連接數據庫的代碼處加上mysql_query(“set names ‘gbk'”) 或者mysql_query(“set names ‘UTF8′”);
2、修改數據庫配置文件,把默認的字符編碼改為gbk,(default_charset)
3、在頁面輸出之前使用 header(‘Content-Type:text/html;charset=UTF-8′);指定編碼為UTF-8;
4、對表單傳遞的值進行編碼強制轉換,如我要傳遞的是keyword,則
$keyword=urldecode($_POST[“kw”]);
$keyword=mb_convert_encoding($keyword, ‘GB2312′, ‘UTF-8′);