看板 PHP 關於我們 聯絡資訊
因為這些中文字的內碼有 \ 這個符號, 一班MySQL是拒絕存取這個符號到資料庫中, 印象中 ' 這個也不行, 不過我之前只有注意到 ' 不行, 沒想到連 \ 也不行, 剛剛拿我寫的留言板來開刀, 結果正如你所說的, 那些中文字中有包含 \ 內碼的, 再寫入十,資料庫會發生錯誤而放棄寫入, 我有一個解決的辦法, 就是利用PHP的某個函式, 將MySQL拒絕的特定字元轉換成全形的符號, 再送入資料庫中,這樣就可以闖關成功了, 但是由於現在碰到的問題本身來源就是一個雙位元組字, 所以你可以考慮在送進資料庫前,先把那些有特定字元的中文字, 轉換成另外一個字,例如:許;詡。 這是我的想法,不知道有沒有人有更好的解決辦法。 那個函式用法如下: $Temp=str_replace("許","詡",$Temp); 希望對你有幫助。 ※ 引述《htk (我要降二軍啦!!!!!!!!)》之銘言: : 我寫了很簡單把網頁的form輸入的文字insert到MySQL資料庫的程式 : 一般中文字都沒問題 : 可是就是 許,珮,餐,功...這些字不行 : 請問一下應該怎麼解決呢? : 我的MySQL版本是5.0.27 : phpMyAdmin 2.9.1.1 : MySQL 文字編碼: UTF-8 Unicode (utf8) : MySQL 連線校對: utf-8_bin : 資料庫的欄位的校對: latin1_swedish_ci -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.23.148.202
chhuang:http://chensh.loxa.edu.tw/php/X_1.php 01/09 13:06
chhuang:難不成你要把所有 5C 結尾的字自己做一張對應表嗎?? @@ 01/09 13:09
chhuang:如果使用者輸入"詡"! DB 取出後你會輸出"許"還是"詡"? 01/09 13:11