作者eric77712 (心要讓你聽見)
看板PHP
標題Re: [請益] 許功蓋這些字無法新增到資料庫?
時間Tue Jan 9 12:54:59 2007
因為這些中文字的內碼有 \ 這個符號,
一班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:難不成你要把所有 5C 結尾的字自己做一張對應表嗎?? @@ 01/09 13:09
→ chhuang:如果使用者輸入"詡"! DB 取出後你會輸出"許"還是"詡"? 01/09 13:11