MySQL 4.1 之後已經把 utf-8 作為預設編碼,如果把 4.0.x 的資料放入 4.1 的資料庫,抓出來的資料不是亂碼就是一堆問號 ?? 。
尤其在租用虛擬主機的狀況下,my.ini 完全不在自己手裡,這時程式的修改是一定要的,只是要怎麼做最不花時間。
這時只要在 MySQL 連線後(也就是下 SQL 指令之前),加一行指定編碼的 SQL 即可,如紅字部份所示:
$link = mysql_connect("mysql.abc.com.tw", "test", "test"); $db = mysql_select_db("mysql_41", $link); $charset = mysql_query("SET NAMES 'big5'", $link); $query = mysql_query("SELECT * FROM Test" , $link);
這個 SET NAMES ‘big5’ 就是代表:
SET character_set_client = big5;
SET character_set_results = big5;
SET character_set_connection = big5;
如果想知道這三個參數代表的意義,可以參考:
9 comments On [MySQL] MySQL 4.1 抓取 big5 編碼資料的方法
最近也嘗試將access+asp 換成asp+mysql,但是因為用國內英語虛擬主機,中文輸入都變成???? ,search Google,and mysql site也試用php改變table charset屬性,但都不成功,偶爾間看到你的blog有相關文章,希望試試看可否找到答案,如果方便可否看看我的php code,問題在那裡.先謝謝了.
—-
—-
largo
我看你的 code 並未照我寫的做呀。
我只想在php的環境下change table’s charset & collation ,而實際執行程式是用asp(比較習慣),你的code是否是每一次php連線時改變charset & collation,實際table並沒有更改?(抱歉!我不是專業programer)
ps是否ODBC連線也可改為你的方式更改charset?
文章提到的方法是用 SQL Command ,不是 Connection String.
Neo 你好,
先說聲抱歉,想跟你詢問問題,因為不曉得從哪邊發問,
所以擅自決定在這邊寫迴響發問,請見諒。
想請問你的 BLOG 是否有WYSIWYG editor,
且是否有提供 [source]..[/source]
方便讓我在網誌內文插入程式碼,
類似你這篇網誌內文黑色底那一區塊那樣,
我申請了Google 的 Blogger 跟 國內的天空部落,
實際測試都沒有支援[source]..[/source]的標籤,
想問問你是否知道哪家Blog 或那個blog 套件有呢??
Huang:
我的 Blog 沒有,WYSIWYG editor,但是 pLog 有。
[source]..[/source]是 BBCode,並不見得每家都有支援。
有需要那個功能的話,用 HTML 的<pre>…</pre> 應該就可以了吧。
詳細應在那處加入這段
$charset = mysql_query(“SET NAMES ‘big5′”, $link);
如在mysql資料庫的sql內新增好像不行
在import data 入新 database 時, 要不要set 那個charset??
請問倘若我是用MySQL ODBC Driver從MSSQL轉到MySQL
而出現亂碼又該和解?
我大概能確定的是在MSSQL資料表的中文是BIG5碼
但我在MySQL資料表的規劃是要UTF8
請問可以在轉的過程中改成UTF8再存入嗎