PHP+資料庫 寫入亂碼...............(解決)

1.PHP是PHP表單 SEND到2.PHP
2.PHP是寫INSERT INTO的
XXX.PHP是連接資料庫用
在2.PHP中會使用include XXX.PHP
1.PHP會SEND資料到2.PHP

1.PHP上是UTF8
2.PHP也是UTF8 加上mysql_query("SET NAMES 'utf8'");
XXX.PHP也是加上mysql_query("SET NAMES 'utf8'");

PHPMYADMIN是選擇UTF8_UNICODE_CI
SQL檔案也是UTF8格式 上傳也是以UTF8上傳
SQL 的TABLE 欄位的屬性也都改成UTF8_UNICODE_CI
SQL連線模式也是UTF8
校對也是UTF8

YAHOO跟GOOGLE前三大頁面的關鍵字"PHP 資料庫 寫入 亂碼"搜尋結果都被我翻片了 也照做


依然

還是亂碼...........
救命阿......................
甚至我把2.PHP跟XXX.PHP加上
mysql_query("set names 'charset'");
mysql_query("SET NAMES utf8");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET_CLIENT='utf8'");
mysql_query("SET CHARACTER_SET_RESULTS='utf8'");

依然.............



PS 付費主機
2015-03-28 21:42 #1
.mysql of amp的版本是多少,光是utf8,mysql就分好幾個版本,請google mysql utf8 中文 或是mysql utf8 亂碼
.既然有付費,可以直接請廠商協助或send一個範例給你參考

nwcs wrote:
.mysql of ...(恕刪)


伺服器: Localhost via UNIX socket
軟體: Percona Server
軟體版本: 5.5.42-37.1-log - Percona Server (GPL), Release 37.1, Revision 2
協定版本: 10
使用者: icechick@localhost
伺服器字元集: UTF-8 Unicode (utf8)

cpsrvd 11.44.2.4
資料庫用戶端版本: libmysql - 5.1.73
PHP 外掛: mysqli 文件

phpmyadmin
版本資訊: 3.5.8.2

客服跟我說沒有問題

nwcs wrote:
.mysql of ...(恕刪)


放上客服回覆
If your SQL does not support Chinese characters you may be using latin encoding. It would be best to change your tables character encoding to utf8. This is a universal encoding type and should support Chinese characters.
mypeter0604 wrote:
放上客服回覆
If your SQL does not support Chinese characters you may be using latin encoding. It would be best to change your tables character encoding to utf8. This is a universal encoding type and should support Chinese characters.

試著翻譯如下:
如果你的SQL不支援中文字元你可改使用拉丁編碼.最好的方式是將你的資料表字元編碼改成UTF8.應該就能支援中文字.

簡單的說就是把SQL的cHARACTER-SET改成UTF8.但樓主已改成UTF8了不是嗎?
=>進phpmyadmin找到可輸入 sql query的畫面,然後鍵入:
show variables like '%character%';
這句話會顯示目前資料庫使用的語系設定,一般國外的網站或剛裝好的 mysql 4.1預設都是 latin-1。

mysql 會出現中文亂碼的原因不外乎下列幾點:
1. mysql server本身設定問題,例如還停留在 latin1
2. mysql table 的語系設定問題(包含 character 與 collation)
3. 客戶端程式(例如 php) 的連線語系設定問題
============================
phpmyadmin
charset 請選擇 UTF-8 Unicode (utf8)
collation 請選擇 utf8_general_ci (ci 代表 case insensitve 大小寫沒差)

1、mysql 啟動時會讀取一個預設的 config 檔,一般名稱為 my.ini,而它會到下列兩位置去尋找這個檔案:
C:windowsmy.ini 也就是作業系統的安裝目錄,也有可能是 C:winntmy.ini
C::my.cnf 也就是 C disk 的根目錄

2、my.ini 裏的內容為:
[mysqld]
default-character-set=utf8
[client]
default-character-set=utf8
init_c
其中 mysqld 是指定 server 啟動時要用的語系,但如果這裏設定為 utf8 可能會讓許多英文軟體不開心,例如 osCommerce/mediaWiki/wordpress/drupal/gregarius,所以這裏建議設成 latin1。要使用utf8中文的人,只要記得建資料庫時將它設成utf8,讓中文程式正確的使用 utf8 與它溝通即可。

另外樓主的程式碼有點奇怪
SQL 的TABLE 欄位的屬性也都改成UTF8_UNICODE_CI
=>應該是utf8_general_ci (ci 代表 case insensitve 大小寫沒差)吧


nwcs wrote:
試著翻譯如下:如果你...(恕刪)


解決了
我是重新把連接資料庫那些寫一次...
可能是舊寫法的關係
有小地方沒注意到
去參考網路上大大的連接資料庫再寫一次就成功了
限制級
您即將進入之討論頁 需滿18歲 方可瀏覽。
提醒:內容可能因過於寫實、驚悚而令人感到不舒服,是否繼續觀看?

根據「電腦網路內容分級處理辦法」修正條文第六條第三款規定,已於該限制級網頁,依台灣網站分級推廣基金會規定作標示。
評分
複製連結