PHP Developer Channel :: 討論園地

您尚未登入。

#1 2006-02-13 17:28:04

pak1123
New member
註冊日期: 2006-02-13
文章數: 1

[phpmyadmin 2.6 up + mysql 4.0 up] utf-8 亂碼問題解決方法

前言
很多php愛好者都很喜歡用phpmyadmin來管理mysql的資料,但新版本的charset好像比較複雜了, 以致有人的phpmyadmin在顯示資料時有亂碼的情形(圖:取自www.phpv.net)
安裝完發生問題後就我一直找解決的辦法, 發現根本沒有完整解決辦法, 所以就用找到的資料了解一下phpmyadmin, mysql的設定來解決.

問題解決過程
我一開始在用的時候當在phpmyadmin處理的資料在他本身來看其實是沒有問題的, 然而當用php show出來的時間就會看到好多亂碼, 而在php處理的只在phpmyadmin有問題, 就知道問題只在於phpmyadmin的顯示方式.
但之後看一看html是utf-8 encode的, 無理由phpmyadmin跟我自己php program, 同樣用utf-8顯示出來會有不同的. 所以便想到問題不是整個php, 也包括mysql的, 那麼在看到phpv.net的一段簡體中文變成亂碼的解決教學中, 想到了, mysql是用latin1為默認的, 而關鍵應該就是phpmyadmin跟mysql mapping的問題了. 再找一下php的設定檔, 終於解決了問題了 ^^"

解決方法
大家先在hpmyadmin中的libraries裡開啟select_lang.lib.php, 找一下"$mysql_charset_map", 在那將'utf-8'        => 'utf8'改成'utf-8'        => 'latin1', 那麼在phpmyadmin中就會使用latin1來做編碼, 在phpmyadmin中便能正常顯示出資料了!

:::註:::
這只是我解決問題的小心得, 不代表一定能解決你的問題, 只希望可以讓跟我有同樣問題的朋友能解決問題, 不用downgrade phpmyadmin或mysql -v-"

離線

 

#2 2006-10-26 17:39:43

Mishar
New member
註冊日期: 2005-07-15
文章數: 5

Re: [phpmyadmin 2.6 up + mysql 4.0 up] utf-8 亂碼問題解決方法

這種方法在這論壇 討論很熱烈
http://xoops.tnc.edu.tw/modules/newbb/v … mp;start=0
我曾用這phpMyAdmin方法 解決問題,但phpMyAdmin方法比不上這方法:mysql_query("SET NAMES utf8"),理由如下:
1.如果你是租用外面空間web hosting,他們不會讓你改phpMyAdmin,
樓上說的方法:
a.開啟/phpMyAdmin/libraries/select_lang.lib.php
b.支援Big5:353行「'big5'=>'big5',」→「'big5'=>'latin1',」
c.支援UTF-8:370行「'utf-8'=>'utf8',」→「'utf-8'=>'latin1',」
這是phpMyAdmin轉換編碼的方式,不只是讓字型正確顯示,會轉換MySQL資料
你要上傳一套 phpMyAdmin 到你的web hosting空間裡(放在www/)....
2. 上傳之後你要設定phpMyAdmin,會嗎?......不會…..還要花時間學。
3. SET NAMES 'x'這方法是MySQL官方建議的:http://www.seed100.com/php-mysql-101-qu … ction.html
這語句相當以下 三個語句:
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
這指令三個可以清楚告訴MySQL server
當查詢 離開用戶端時 是什麼字集?
MySQL server讀取character_set_client 這個變數variable, 來 作為用戶端發送查詢所用的字集 ,
character_set_results這指令告訴 MySQL server要送回結果給用戶端時 應該用什麼字集?

最後修改: Mishar (2006-10-30 20:21:40)

離線

 

論壇頁尾

Web Hosting
PHP Developer Channel
Powered by PunBB 1.2.9
© Copyright 2002–2005 Rickard Andersson