我試圖插入非英文字符:通過PHP未能插入外語字符到DB
這裏(如約瑟夫Kricenský)到我的mysql數據庫是我的代碼
$name=addslashes("Josef Kricenský");
$id=1;
mysql_query("'SET NAMES 'utf8'");
mysql_query("insert ignore into names (id,value) values ('$id','$name')");
數據是插入到表中,但它只能插入到'ý'中,即:約瑟夫Kricensk
utf8_general_ci是表格整理,MyISAM是存儲引擎,此代碼在我的其他網站上工作過,但似乎這是缺少的東西。
如果我通過phpmyadmin插入它的作品,所以我的猜測是,代碼少了點什麼,順便說一下PHP版本5.2.7是
您的PHP文件是否也是UTF8?因爲如果你在一個非Unicode的純文本文件中進行編輯,那麼它的代碼非常不同。如果名字來自網頁,你確定他們編碼正確,之前(是UTF8頁面)?暫時刪除addslashes()會改變什麼嗎? – FrancescoMM
這隻有在你的php頁面也有正確的編碼時纔有效。根據您使用的代碼編輯器,它們中的大多數會爲您提供一個選項,以促進不同的編碼。 –
同上。另外我還做了一個「SET CHARACTER SET utf8」,除了SET NAMES utf8 - 注意我沒有在utf8中加上引號 - 不確定這可能是一個問題,但只是看我在我的代碼中做了什麼 – KevInSol