資料移轉問題----big5->utf8

這個版面主要討論 debian 在 server 端的應用問題, server 種類繁多..舉凡 Web Server 、 File Server、 DHCP Server..等等。

版主: 阿信

資料移轉問題----big5->utf8

文章阿威 » 週四 11月 24, 2005 2:29 pm

最近在處理程式上,一直受到big5許蓋功的問題所苦,就想說利用轉utf-8來解決這個問題。

利用google搜出來的結果,發現我原本建制的資料庫,是預設的latin1的語系,所以dump出來的都是亂碼,所以先要把/etc/mysql/my.cnf裡面的
-default-character-set=latin1

這樣dump出來的才會是正常的中文碼。

後來建了一個資料庫,設定成utf-8的格式,利用網路上的轉檔工具
convertz

http://xoops.tnc.edu.tw/modules/wfdownl ... .php?cid=9
下載的工具
進行轉檔。
匯進去發現去都是亂碼。

然而利用phpmyadmin直接新增中文資料是ok的

因此猜想可能是匯進去之前要先把
-default-character-set改成utf-8才會正常。
目前還沒測試,有大大有這些轉碼的經驗ㄇ。
阿威
摩托學園!學園長們
摩托學園!學園長們
 
文章: 419
註冊時間: 週三 9月 04, 2002 2:31 am

文章timeriver » 週四 11月 24, 2005 4:32 pm

如果你是用 phpmyadmin dump 回去的話
phpmyadmin 連進去的右邊那邊要選 utf8

mysql 是可以好幾種語系並存的
假如只是要把資料轉碼,mysql那邊的設定應該是可以完全不用更動的
只是 mysql 的版本必須是要有支援 utf8
"Hope deffered makes the heart sick. But when dreams come true.There is life and joy" proverbs 13:12
timeriver
懵懂的國中生
懵懂的國中生
 
文章: 106
註冊時間: 週三 3月 31, 2004 12:02 am
來自: 基隆

搞定了

文章阿威 » 週三 12月 14, 2005 10:10 am

上次的東西,擺了好久,沒有繼續弄,後來最近又有些空閒,就趕緊來弄。
上網查的一下,原本以為my.cnf的設定是沒有關係的,預設是啥都可以。
後來又以為匯入之前要設定
代碼: 選擇全部
SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;

詳情請見
http://phorum.study-area.org//viewtopic ... 379868dff7
最後在睡了一覺之後,找出了原因。
愚蠢的我一直以為,mysql不會執行/* */底下的東西,看來我錯了
以下的碼一直都被執行
代碼: 選擇全部
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES latin1 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

因此我就搞那麼久都是錯在這裡。
把匯出的資料裡面有這些設定的地方砍掉。(是頭跟尾,哈哈,是小弟沒搞清楚所有的細項的功能,全砍了再說)
阿威
摩托學園!學園長們
摩托學園!學園長們
 
文章: 419
註冊時間: 週三 9月 04, 2002 2:31 am

文章阿威 » 週三 12月 14, 2005 10:38 am

應該是SET NAMES latin1這個在搞鬼
查了一下,設了這個client跟results2都會變成latin1
哈哈我退伍囉!
阿威
摩托學園!學園長們
摩托學園!學園長們
 
文章: 419
註冊時間: 週三 9月 04, 2002 2:31 am

文章mason » 週三 4月 19, 2006 6:38 pm

這裡提供另外一個方法,
假設:
mysql 的版本為 4.1.15
tb1 的 charset是 big5
tb2 是結構跟 tb1 一樣的 table, 只是 charset 是 utf8

做如下動作:
mysql> set names utf8;
mysql> INSERT INTO tb2 SELECT * FROM tb1;

等到跑完就轉好了。
skype:dantemason
http://blog.sikazozo.org
頭像
mason
快樂的大學生
快樂的大學生
 
文章: 547
註冊時間: 週二 9月 10, 2002 3:40 pm
來自: SIDE 3

文章jou » 週四 4月 20, 2006 10:57 am

twu2 最近幫 study-area 從 Big-5 轉到 utf-8
這裡有留下筆記,可以參考一下。
http://phorum.study-area.org/viewtopic.php?t=38436

注意,Blog 那一篇更詳細喔。
jou
可愛的小學生
可愛的小學生
 
文章: 26
註冊時間: 週四 5月 26, 2005 10:51 am
來自: 台中


回到 debian server

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron