【網路開店購物網站架設】教學 課程 + 技術諮詢 每年超過2000億的『網路購物市場』在網路上等待您去賺! 打造很賺錢的購物網站 →您需要有一套完整的課程與技術顧問諮詢! 史上真正頭一遭 ! 由購物網站架站教學基地【總教頭】所釋出的獨門技術密技 ! 參加了本秘技課程,您無須再自我摸索曠日廢時→快速打通任都二脈 全部課程有售後註冊諮詢及密訓基地,學成後你就是:購物網站的頭家! 你不用每星期跑補習班,趕著時間跟老師上課! 百分之百的上課實際操作錄製的教學影片! 購物網站架站不必再求人! 不必網路搜尋找不到適合的購物網站架站軟體及架站教學! 不論您是學生、電腦使用者、美工、或是一般民眾,不論您是從事那一種行業都適合! 只要您有購物網站架站需求,或是您有心想精修這個領域,您都絕對需要這份函授課程! 購買本課程享有長達一年的技術諮詢與服務!

購物網站教學網站-架站技術

Mysql 4.1中文亂碼的處理與解決之道

要讓 Mysql 4.1正確顯示中文最簡單的方法就是全程使用 utf8,從網頁到連線到資料庫等,而my.ini的設定如下:

[mysqld]
default-character-set=utf8

#settings for clients (connection, results, clients)
[mysql]
default-character-set=utf8

其中 [mysqld] 是設定 mysql啟動時要採用的語系,而[mysql]則是通知外來的連線client(例如php頁面或 flash 程式)要使用何種語系設定。
這個設定方法對一般的開發工作非常適用,但有個小缺點,就是當使用一些open source php程式時(尤其是英文寫的程式),如果這些程式語法還停留在mysql 4.0時代,那上面的設定就會導致中文顯示變的怪怪的,最明顯的情況就是大部份中文都顯示的出來,但少部份會變成 方塊型+問號 的亂碼,例如「裏」這個字幾乎是穩死。
這種情況在 drupal 與 gregarius(一個php rss reader) 上見過,經過一番debug才發現了上述原因,後來終於找到解決方法。

最簡單的方式就是不要下面這段:

[mysqld]
default-character-set=utf8

拿掉這段後會讓mysql 啟動時停留在預設的latin-1語系,這樣會讓大部份英文程式都很快樂,而要使用utf8中文的人,只要記得建資料庫時將它設成utf8,然後保留 [mysql] 這段設定,讓中文程式正確的使用utf8與它溝通即可。
經過測試:這樣改良後的設定,使用常見的英文php軟體(如wordpress, drupal, OSCommerce, gregarius)都沒問題,而開發要用的 flash – amfphp – php – mysql 黃金組合也同樣ok。

原本用 mysql 4.0 而同時要升級到 mysql 4.1-中文亂碼的解決方法

大部份人升級wordpress 1.5時碰到的問題都是中文亂碼,尤其是如果原本用 mysql 4.0 而同時要升級到 mysql 4.1的話。

主要原因是mysql 4.1在語系方面增加了許多功能,它可以設定語系的層次從最底層的 server, database 到單一 table, column, connection 都可以設定,而除了語系之外,還可以指定搭配不同的 collation,所以組合百百種,只要一個錯了就難逃亂碼的命運。
(而之前用mysql 4.0為何不用設定也不會出問題呢?主要原因是那時預設是 latin-1,正好相容大部份的utf-8字元,所以不常碰到亂碼)

所以如果你的情況跟我一樣,同時要將 wordpress 從 v1.2升級到 v1.5, 然後mysql也要 v4.0 升級到 v4.1 的話,請看下面流程:
A. 先進phpmyadmin找到可輸入 sql query的畫面,然後鍵入:
show variables like 『%character%』;

這句話會顯示目前資料庫使用的語系設定,一般國外的網站或剛裝好的 mysql 4.1預設都是 latin-1。

B. 新增wordpress blog要用的database名稱,例如 myblog.

如果你熟悉 phpmyadmin 的動作,在畫面上就可以選取這個新database 要用的語系,

charset 請選取 UTF-8 Unicode (utf8)
collation 請選取 utf8_general_ci (ci 代表 case insensitve 大小寫沒差)

C.改 database語系,同樣在 phpmyadmin 的query畫面鍵入下面兩行:

如果你在上一步中沒正確選取語系,或是在看到本文前已經先建好database了也沒關係,用下面語法可以改回來

alter database myblog
character set utf8;

D.匯入舊的 sql

到這裏為止mysql裏面已經有一個 utf-8的 database, 可以準備倒資料進去了,把舊版的sql 文字檔直接copy-paste或上傳到 phpmyadmin即可。注意要告訴phpmyadmin這個文字檔是 utf-8 編碼的才能正確匯入。

根據我的經驗,總是會有一兩個小地方出問題,可能要手動修改一下內容,例如將某些中文字先換成英文,等倒進mysql後再進wordpress 改回來。

E.改 wp-db.php 的設定

前面曾經提過,mysql的語系設定是多層次的,前面我們把database與table的語系都設定正確,但程式與mysql連線時的語系則是由 connection 來決定,這部份就要改wordpress的程式碼,在 wp-includeswp-db.php 的第 44行加上:
$this->query(”SET NAMES ‘utf8′”);

這句話會同時設定 client, results, connection三者使用的語系為 utf-8。

*最後檢查是否全部改成 utf-8

show variables like 『%character%』;

此時你應該會看到大部份欄位都是utf-8了,除了 server 這項之外,因為租用的hosting主電腦,所以沒法兒改這部份,但平常做案子時大部份都可以直接控管mysql,此時就可以用 my.ini 設定:

[mysqld]
default-character-set=utf8

告訴mysql server啟動時要用 utf-8即可。

◎.經由這樣調校的 mysql,連線 flash – amfphp – php – mysql 也完全沒問題,可以互傳中文/日文。

【文章主題】: 揭開:購物網站【ECShop】的首頁輪播動態圖片廣告的技術秘密
【文章作者】: 購物網站架站.經營教學密訓基地-總教頭
【作者信箱】:
steven8ster@gmail.com
【作者網站】: http://por.tw/sale
【主題分類】: 購物車.購物網站【ECShop】
【第二網站】:
http://visdacom.com/sale
【版權聲明】: 原創於【購物網站架站.經營教學密訓基地】-可轉載!請保持文章完整。刪除部分者依法追究!
——————————————————————————–
【主題內容】
  揭開:購物網站【ECShop】的首頁輪播動態圖片廣告的技術秘密
  最近大加一定發現我的網站首頁增加了:輪播動態圖片廣告的看板
  看來好像跟購物網站【ECShop】的首頁輪播動態圖片廣告很類似
 
請注意:這是我自己的作品(可不是套用購物網站【ECShop】的首頁輪播動態圖片廣告模組喔!)
  請看:我在最難搞的Google的【blogger】部落格(網路賺錢技術觀察站)也掛上這樣的廣告!

  網址是:
http://ebook369.blogspot.com
  

  啊!怎麼弄的?能不能教教大家?這就是台灣人錯愛大陸購物網站【ECShop】的第一步
  因為一般人部會製作Flash動畫!又例如:目前的台灣TWE-commerce 3.0安裝後有Flash官方動畫
 
笨蛋還以為跟購物車.購物網站【ECShop】一樣(可以自己更換廣告圖片及連結點)
  仔細到後台一看(大失所望…沒有!)一般人不知道怎麼加上去
  只好再次冒著版權不明(商業與非商業使用)的苦惱….繼續使用購物車.購物網站【ECShop】
  最近有很多網友寫信給我,說他的購物車.購物網站【ECShop】被駭客入侵
(懷疑八成是:阿陸仔搞的鬼..)
  哈哈!我教學中還有教很多購物車可用(為何獨鐘購物車購物網站【ECShop】呢?難道想投奔中共不成?)
  開玩笑啦!不要講政治!生意人只講:經濟(不講政治!)

 
 
言歸正傳!來分析講解:購物車.購物網站【ECShop】的首頁輪播動態圖片廣告模組的作動方式
  此種:Flash廣告的結構有Flash檔案(副檔名為:SWF)通常作者設計好了以後使用者不用管它
  此Flash廣告圖片SWF檔是呼叫外部圖片(一般的Flash都是包在裡頭,要改就要有原始檔很不實用)
  那圖片大小與連結的廣告網址(連結位址)是使用:XML的檔案(用一般文字輸入即可)
  XML告訴Flash檔案(副檔名為:SWF)圖片的路徑與連結點,這樣幫然方便使用者可以自己更改!
  圖片更換時的轉換畫面Flash檔案(副檔名為:SWF)會自己去執行
 
  最後當然再使用一個頁面HTML(或PHP.ASP)把他呈現出來(夠簡單吧!)
 
那要在部落格顯現來做:部落格行銷呢?那當然是使用HTML或JAVA的語言程式碼把它弄上去!
  所以為何要花錢學技術呢?因為大家都不是:網站程式的本科系畢業或有朋友有此專長
  請一般網站設計公司很貴(自己還是不會)受限於人的生意怎麼做?
  技術就是這樣:會的不難,不會的比登天還難!
邊工作賺錢邊進修技術一舉兩得
  因為網路是目前的主流趨勢,學會本領就不用看人臉色了!
  為了遏止盜版及拷貝歪風!購物網站函授課程的註冊學員有問題(總教頭)提供技術諮詢…….

資料庫 mysql 的中文亂碼解決【保証成功】專案

在架站技術中常常有來信詢問各種 mysql 中文相容的問題。

資料庫mysql中文亂碼的原因不外乎下列幾點:

☆‧mysql server本身設定問題,例如還停留在 latin1

☆‧mysql table 的語系設定問題(包括 character 與 collation)

☆‧用戶端程式(例如 php) 的連線語系設定問題

請設定 mysql server/table 的 character/collation:

接下來只需要補充幾點注意事:

◎、mysql中文亂碼必勝解決法:

1、mysql 啟動時會讀取一個預設的 config 檔,一般名稱為 my.ini,而它會到下列兩位置去尋找這個檔案:

C:windowsmy.ini 也就是作業系統的安裝目錄,也有可能是 C:winntmy.ini
C::my.cnf 也就是 C disk 的根目錄

注意不同位置裏的檔案suffix不一樣,這點在之前的文章中沒有特別強調,因此那時我是用更複雜的方法直接重新將mysql 註冊到 service裏面,並在那裏指定 my.ini的位置。

2、my.ini 裏的內容為:

[mysqld]
default-character-set=utf8

[client]
default-character-set=utf8
init_connect='SET NAMES utf8'

其中 mysqld 是指定 server啟動時要用的語系,但如果這裏設定為 utf8可能會讓許多英文軟體不開心,例如 osCommerce/mediaWiki,所以這裏建議設成 latin1。

下面的 client 則是設定當 client 連線時要使用什麼語系,但可惜的是這個設定不是每個client都會鳥它,基本上只有 mysql 自已家的程式,例如 mysql.exe, mysqld.exe, mysqladmin.exe 或是 MySQL Control Center這種程式會去讀取這個設定檔然後改用 utf8 連線。

在此提供第二行指令,比一支支php程式去設定connection setting更快,這樣應該也可以順便解決phpmyadmin無法正確顯示 unicode 中文的問題(不過 amfphp 到是不吃這套,一定要乖乖的自已設定語系才行)

但大部份專案師應該都是自已寫 php/jsp 程式去連線,此時自然不會讀取這個設定而繼續使用預設的語系 – latin1。

這也正是大部分網友陣亡的地方。

可以用一個獨立的檔案來處理 mysql connection的設定,例如:

PLAIN TEXT
PHP:

<?
//database connection details.
$host = "localhost";
$link = mysql_connect($host, "xxx", "xxx");
mysql_query("SET NAMES 'utf8'");
mysql_select_db("your_table_name_here", $link);
?>

請注意在 mysql_connect後第五行的地方有加上一個 "set names 'utf8' "的指令,告訴mysql 這個 connection 之後的連線內容都要使用utf8,經由這樣設定後,通常就可以解決大部份問題。

從這裏也可以推想得知,如果你有用某種custom connection pooling機制,就要記得在每次建立新的connection後立即設定為 utf8。

這組設定經由幾天的反覆測試(使用中文繁、簡、日文、韓文)後已經証實完全不會有亂碼或是某些字變成 "口"。

例子:試者輸入這幾個字「不道可否囉」如果它們能正確進入mysql再被讀出來,那就是中文沒問題了,如果讀出來後變成『口』字那就是革命還未成功同志仍需努力…orz

當然我也順便檢查了 flex2 – amfphp – php – mysql 來回傳resultset 也不再會有中文亂碼問題,可以安心使用囉。