歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 26, 2024, 05:12:05 上午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  支援  |  虛擬主機討論  |  MySQL連線校對問題 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: MySQL連線校對問題  (閱讀 39303 次)
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 於: 四月 05, 2006, 06:35:50 下午 »

不知道是不是主機商的關係
最近我的資料庫連線校對從utf8_general_ci變成了latin1_swedish_ci
前台呈現沒問題
只是在資料庫裡中文變亂碼,變換 browser 語系為utf-8也還是亂碼
之前 utf8_general_ci的情況下,變換 browser 語系為utf-8可以正確呈現中文
目前使用上沒問題,只是怕到時候換主機商時,
會出現之前老貓的問題
有嘗試過手動將資料庫中所有table與資料庫本身的校對改為utf8_general_ci
可是前台會出現亂碼 疑惑

有沒有人有好的解決方式?

我現在有一個想法:
就是先建立一個utf8_general_ci的環境
將虛擬主機的備份資料倒回去
一筆一筆的將亂碼改回正常顯示後
在備份出來,倒回虛擬主機上
不知道這樣會不會成功,工程有點浩大
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
WhiteCloud
初級會員
**
文章: 51


檢視個人資料 個人網站
« 回覆文章 #1 於: 四月 05, 2006, 08:09:15 下午 »

是否和這個有關
http://twpug.net/modules/newbb/viewtopic.php?topic_id=1235&forum=14&post_id=4873#forumpost4873
已記錄
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #2 於: 四月 05, 2006, 10:32:43 下午 »

應該類似吧
總之是語系的問題
只是之前的正常,我猜是因為虛擬主機最近進行版本升級吧
原來的utf8_general_ci全都變成了latin1_swedish_ci
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
ericj
新手見習
*
文章: 43



檢視個人資料 個人網站
« 回覆文章 #3 於: 四月 06, 2006, 10:33:05 下午 »

如果之前就是utf8_general_ci的話
最慘的情況就是犧牲最近的就好了..

基本上如果要避免以後轉換沒問題的話
就是連線校對還有Table裡面的校對全部都要是utf8_general_ci

但是你說你有嘗試把Table改回utf8_general_ci
可是卻變亂碼,是全部都變亂碼還是只有最近的變亂碼(主機升級後)

如果你把Table都改回utf8_general_ci連以前的也都變亂碼的話
那事情就有複雜了..

已記錄

Pentium4 1.5GHz + 512MB SDRAM + 200G vinum mirror RAID
FreeBSD6.1+lighttpd+php5-cgi+MySQL5.1
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #4 於: 四月 06, 2006, 11:00:54 下午 »

如果你把Table都改回utf8_general_ci連以前的也都變亂碼的話
那事情就有複雜了..

事情就如你所說的有複雜
因為改過去utf8_general_ci 舊的也變成亂碼
改回latin1_swedish_ci正確顯示
但是在RSS的feed 在newsgator顯示變成亂碼了
不過咧,newsgator最近在發神經中,
也不確定是不是因為修改語系造成的
目前考慮忍痛犧牲,舊店重開
一篇一篇重新發文
只是迴響的部分就很麻煩了
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #5 於: 四月 07, 2006, 12:57:20 上午 »

不需要這麼作

這其實是 phpmyadmin 的 bug 傷心

1. 先在你自己的虛擬主機上裝 一個 phpmyadmin。我假設你知道你的 DB 的設定,所以你知道如何修改 phpmyadmin 的設定檔案,讓 phpmyadmin 可以運作!
2. 修改 /libraries/select_lang.lib.pgp 中的

程式碼:
    'utf-8'        => 'utf8',

改為

程式碼:
    'utf-8'        => 'latine1',
3. 然後用匯出的功能,把資料匯出。
4. 這時你會看到會出的檔案都是正確的中文字了。

Mark
已記錄

bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #6 於: 四月 07, 2006, 02:03:08 上午 »

1. 先在你自己的虛擬主機上裝 一個 phpmyadmin。我假設你知道你的 DB 的設定,所以你知道如何修改 phpmyadmin 的設定檔案,讓 phpmyadmin 可以運作!
這就是問題所在
之前老貓發表過的[疑難]換主機商、MySQL連線校對和亂碼問題
sea0964也是提出這個解決方法
問題是,我該如何得知我真正的DB Hostname,而不是localhost
莫非是我進入phpmyadmin的網址? 疑惑
無法確定Hostname 或 IP 遲遲不敢下手
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
ericj
新手見習
*
文章: 43



檢視個人資料 個人網站
« 回覆文章 #7 於: 四月 07, 2006, 02:24:28 上午 »

markwu提到的方法真的很有趣,
沒想到過了快一年了,終於有很解決的辦法了 吐舌頭
我剛剛試了一下,以前用utf8塞進latin1 Table的資料都可以正確匯出了  開懷大笑

to bibicall:
DB hostname應該是看你裝lifetype的時候怎麼設定
這邊就怎麼設定囉。

phpmyadmin只是一套去管理database的程式
其實跟lifetype有點像,

so別擔心,設定錯的話只是會連進不去而已,
不會毀了database的XDD


已記錄

Pentium4 1.5GHz + 512MB SDRAM + 200G vinum mirror RAID
FreeBSD6.1+lighttpd+php5-cgi+MySQL5.1
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #8 於: 四月 07, 2006, 02:29:37 上午 »

to bibicall:
DB hostname應該是看你裝lifetype的時候怎麼設定
這邊就怎麼設定囉。
所以應該就是用localhost就行嚕?
我想他說那邊要改,會不會是因為他那篇是寫給DreamHost使用者看的
DreamHost的DB好像有另一個hostname的樣子



已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #9 於: 四月 07, 2006, 04:03:03 上午 »

已經可以正確顯示中文了
只是目前匯出匯入還是有點小問題
需要先將連線校對改為 utf8_general_ci 嗎?(整個資料庫、table、table下的每個欄位)
因為我先改了之後再匯出,重新匯入後中文變「?」了

天快亮了,睡先,睡飽了在來試
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
ericj
新手見習
*
文章: 43



檢視個人資料 個人網站
« 回覆文章 #10 於: 四月 07, 2006, 04:10:42 上午 »

我是改完phpmyadmin的 utf8->latin1後
就直接匯出,這樣看到的SQL就是正確的中文了

要匯進去的時候再把Table和connection的校對設好
還有phpMyAdmin改回來就好了..
已記錄

Pentium4 1.5GHz + 512MB SDRAM + 200G vinum mirror RAID
FreeBSD6.1+lighttpd+php5-cgi+MySQL5.1
fishbudinli
新手見習
*
文章: 12


檢視個人資料
« 回覆文章 #11 於: 十一月 02, 2006, 01:47:39 上午 »

不需要這麼作

這其實是 phpmyadmin 的 bug 傷心

1. 先在你自己的虛擬主機上裝 一個 phpmyadmin。我假設你知道你的 DB 的設定,所以你知道如何修改 phpmyadmin 的設定檔案,讓 phpmyadmin 可以運作!
2. 修改 /libraries/select_lang.lib.pgp 中的

程式碼:
    'utf-8'        => 'utf8',

改為

程式碼:
    'utf-8'        => 'latine1',
3. 然後用匯出的功能,把資料匯出。
4. 這時你會看到會出的檔案都是正確的中文字了。

Mark

在我爬了許久的文後這篇終於出現了!
雖然是很久以前寫的!我還是要感動的說感謝Mark!! T_T
我終於看得懂我資料表裡面的東西了!謝謝!!
已記錄
頁: [1]
LifeType 中文開發論壇  |  支援  |  虛擬主機討論  |  MySQL連線校對問題 « 上篇主題 下篇主題 »
    前往: