Neo's Blog

首頁 相本 討論 書籤

分類目錄
本站日誌 (51)
碎碎唸啦 (173)
網站架設 (84)
程式設計 (161)
軟體使用 (69)
電子商務 (126)
經營奇想 (48)
基金理財 (11)
聰明消費 (87)
電影心得 (47)
開放原碼 (16)
工作記錄 (2)
毛毛小記 (9)
就是不同 (2)




歷史資料
 




May 23, 2005
[MySQL] MySQL 4.1 抓取 big5 編碼資料的方法

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;

如果想知道這三個參數代表的意義,可以參考:

http://dev.mysql.com/doc/mysql/en/charset.html

 
由 Neo 發表於 May 23, 2005 03:56 AM 收進你的MyShare個人書籤  

最近也嘗試將access+asp 換成asp+mysql,但是因為用國內英語虛擬主機,中文輸入都變成???? ,search Google,and mysql site也試用php改變table charset屬性,但都不成功,偶爾間看到你的blog有相關文章,希望試試看可否找到答案,如果方便可否看看我的php code,問題在那裡.先謝謝了.
----

----
largo


largo 發表於 July 23, 2005 11:54 PM

我看你的 code 並未照我寫的做呀。


neo 發表於 July 24, 2005 01:54 AM

我只想在php的環境下change table's charset & collation ,而實際執行程式是用asp(比較習慣),你的code是否是每一次php連線時改變charset & collation,實際table並沒有更改?(抱歉!我不是專業programer)
ps是否ODBC連線也可改為你的方式更改charset?
-----
my ODBC connection string
MM_abc_STRING = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=largo.abc.com;DATABASE=largo_db;UID=largo;PWD=password;OPTION=35;"
------
謝謝


largo 發表於 July 25, 2005 07:35 AM

文章提到的方法是用 SQL Command ,不是 Connection String.


Neo 發表於 July 27, 2005 12:56 AM

Neo 你好,

先說聲抱歉,想跟你詢問問題,因為不曉得從哪邊發問,
所以擅自決定在這邊寫迴響發問,請見諒。

想請問你的 BLOG 是否有WYSIWYG editor,
且是否有提供 [source]..[/source]
方便讓我在網誌內文插入程式碼,
類似你這篇網誌內文黑色底那一區塊那樣,
我申請了Google 的 Blogger 跟 國內的天空部落,
實際測試都沒有支援[source]..[/source]的標籤,
想問問你是否知道哪家Blog 或那個blog 套件有呢??


Huang 發表於 August 17, 2005 11:38 AM

Huang:

我的 Blog 沒有,WYSIWYG editor,但是 pLog 有。

[source]..[/source]是 BBCode,並不見得每家都有支援。

有需要那個功能的話,用 HTML 的<pre>...</pre> 應該就可以了吧。


Neo 發表於 August 18, 2005 12:29 AM

詳細應在那處加入這段
$charset = mysql_query("SET NAMES 'big5'", $link);
如在mysql資料庫的sql內新增好像不行


hkboy 發表於 November 28, 2005 10:24 AM

在import data 入新 database 時, 要不要set 那個charset??


KC 發表於 June 5, 2007 11:29 AM

請問倘若我是用MySQL ODBC Driver從MSSQL轉到MySQL
而出現亂碼又該和解?
我大概能確定的是在MSSQL資料表的中文是BIG5碼
但我在MySQL資料表的規劃是要UTF8
請問可以在轉的過程中改成UTF8再存入嗎


yuchin 發表於 August 6, 2007 11:46 AM
發表迴響  
(*星號開頭為必填欄位)











(請輸入您看到的數字,看不到請按右鍵->顯示圖片)


記住我的資訊?







Copyright 2005 Neo's Blog All rights reserved.