茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1735122 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
PIMG_00034.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

DB研討會 : [分享]mysql與phpMyAdmin顯示或儲存utf-8問題集

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15773
[分享]mysql與phpMyAdmin顯示或儲存utf-8問題集
mysql big5 轉 utf-8 速記

當網站改版時,要把以往mysql的big5資料轉換成utf-8時,常常會是個頭痛的問題。

要轉換,你的新舊資料庫都有phpmyadmin的介面,另外還得有big5->utf-8的工具,在windows上中文轉換工具首選為 ConvertZ ,在linux上得轉碼工具為iconv。

[全文:]

首先,檢查看看phpmyadmin在輸出csv檔案時會不會有問題。
stripslash為把字串去掉反斜線的函式,但是在處理big5碼的時候便會碰到難題,他會將big5的斜線去掉,以至於轉出來的文字變成亂碼。新版的phpmyadmin已經沒有這個問題,但是要看看舊版有沒有在轉出的時候加上這個函式,得把他去掉
編輯 phpmyadmin/libraries/export/csv.php

    function PMA_exportData
裡頭,找到while迴圈,並找找看有沒有stripslash的function:


while ($row = PMA_DBI_fetch_row($result))
.....
$row[$j] = stripslashes($row[$j]);

把function拿掉,留下

    $row[$j];
就好。

第二,輸出csv資料。到phpmyadmin的輸出頁面,針對舊資料庫一次一個表格輸出。調成csv匯出,存檔。

第三,匯出資料庫的結構schema。到phpmyadmin的輸出介面,針對全部的表格,調成SQL輸出,並且不要包含資料,下載回來的是單純的sql結構檔。

第四,打開convertz,對剛剛轉下來的csv轉換成utf8的動作。

第五,到新資料庫,先把剛剛.sql的結構給匯入,建立好空的table格式。如果在mysql4.1以後,如果有預設連線校對,匯入的表格統統都會用該連線校對設定。

第六,一個一個資料表,匯入剛剛存下的csv檔。

最後,檢查看看新資料庫有沒有亂碼。

這應該是個笨方法,不過目前沒有出現中文轉換的問題。如果一直試不成功,不妨也可以試看看這個笨方法。

前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|