http://xoops.tnc.edu.tw/modules/wfdownl ... d=9&lid=23
Big5 資料庫轉成 UTF-8 格式
馬上下載
描述:
免責聲明:
提供它只因為它有用, 但沒有任何擔保, 若有任何意外, 我們不負任何責任.
用途說明:
Big5 資料庫轉成 UTF-8 格式, 且轉換後的許功蓋不會出現 \
適用於 Linux / MySQL 4.x
用法:
請先您的 Big5 編碼的資料庫, 用 phpmyadmin 匯出成一個 sql 檔.
tar xvzf b2u.tar.gz
./bg5-db2-utf8 已匯出的sql檔路徑檔名 新的資料庫名稱 MySQL管理密碼
Big5 to UTF8
MySQL 4.0.x 升級至 MySQL 4.1
http://phorum.study-area.org/viewtopic.php?t=29392
由於本來都是使用 MySQL 4.0 的為主要Database..
但是周六在更新我的 Server 的時候(我用 Mandrake Cooker 作為 Server)...
發現,Mandrake 10.2 以後似乎就沒有提供 MySQL 4.0.x 了!!...
所以伺服器在無意間,自動升級到 MySQL 4.1..
由於在 MySQL 4.1 以後,伺服器支援 Database Charset 的資料.但是.....
直接從 MySQL 4.0 升級上來的,所有內容的編碼不變化,但是Database 的編碼設定則是跑成 latin1 的格式....
這樣的話,在 dump資料時沒有指定正確的 charset 或是 mysql client charset 不同的時候,會發生內容錯誤的情況....(也就是很多人說會看到一堆 ??,或是一堆亂碼...)
或許在 client 跟 server 的 charset 都設定唯一樣的時候,取出的資料不會有錯誤(因為 mysql 不會在中間轉碼...)
目前我的做法:
我計劃將資料庫設定編碼都設定為 utf8 ,也就是進入資料庫後的資料都是以 utf8 方式存檔.
先利用 mysqldump --default-character-set=latin1 將資料進行 Dump ...
如此 dump 出來的資料會是正常的..
然後利用編輯器 vim or gedit or ultraedit 等....
修改dump出來的檔案.
將 每個Table 的 Default Charset 改為 utf8 .
同時在 Dump 的資料檔案最前面加上.
SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;
接著 若你原來的資料是以 utf8 儲存,則不用變動.
若用 big5 存入資料庫的,請利用 iconv -c -f big5 -t utf8 MysqDumpFile.sql 的方式,把內容的編碼轉換成為 utf8 格式.
接著..就把資料表 import 進入資料庫看看囉....
mysql -u root -p DatabaseName < MysqlDumpFile.utf8.sql
註.不建議各位 client Charset = big5 去匯入.
因為有可能會遇到內容有 slashes 的問題(例如許功蓋).一律轉為 utf8 來 Import 進資料庫會比較沒有問題.
_________________
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
由於本來都是使用 MySQL 4.0 的為主要Database..
但是周六在更新我的 Server 的時候(我用 Mandrake Cooker 作為 Server)...
發現,Mandrake 10.2 以後似乎就沒有提供 MySQL 4.0.x 了!!...
所以伺服器在無意間,自動升級到 MySQL 4.1..
由於在 MySQL 4.1 以後,伺服器支援 Database Charset 的資料.但是.....
直接從 MySQL 4.0 升級上來的,所有內容的編碼不變化,但是Database 的編碼設定則是跑成 latin1 的格式....
這樣的話,在 dump資料時沒有指定正確的 charset 或是 mysql client charset 不同的時候,會發生內容錯誤的情況....(也就是很多人說會看到一堆 ??,或是一堆亂碼...)
或許在 client 跟 server 的 charset 都設定唯一樣的時候,取出的資料不會有錯誤(因為 mysql 不會在中間轉碼...)
目前我的做法:
我計劃將資料庫設定編碼都設定為 utf8 ,也就是進入資料庫後的資料都是以 utf8 方式存檔.
先利用 mysqldump --default-character-set=latin1 將資料進行 Dump ...
如此 dump 出來的資料會是正常的..
然後利用編輯器 vim or gedit or ultraedit 等....
修改dump出來的檔案.
將 每個Table 的 Default Charset 改為 utf8 .
同時在 Dump 的資料檔案最前面加上.
SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;
接著 若你原來的資料是以 utf8 儲存,則不用變動.
若用 big5 存入資料庫的,請利用 iconv -c -f big5 -t utf8 MysqDumpFile.sql 的方式,把內容的編碼轉換成為 utf8 格式.
接著..就把資料表 import 進入資料庫看看囉....
mysql -u root -p DatabaseName < MysqlDumpFile.utf8.sql
註.不建議各位 client Charset = big5 去匯入.
因為有可能會遇到內容有 slashes 的問題(例如許功蓋).一律轉為 utf8 來 Import 進資料庫會比較沒有問題.
_________________
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
ConvertZ
http://toget.pchome.com.tw/intro/networ ... 14022.html
ConvertZ 快速方便的繁/簡中文內碼轉換器
ConvertZ 是一個中文內碼轉換器,讓您能輕鬆地對純文字檔案或剪貼簿內容在big5/gbk/unicode/utf-8/jis/shift-jis/euc-jp各種內碼之間自由轉換,解決不同地區因為應用不同編碼而產生的溝通問題。
ConvertZ 快速方便的繁/簡中文內碼轉換器
ConvertZ 是一個中文內碼轉換器,讓您能輕鬆地對純文字檔案或剪貼簿內容在big5/gbk/unicode/utf-8/jis/shift-jis/euc-jp各種內碼之間自由轉換,解決不同地區因為應用不同編碼而產生的溝通問題。
MySQL 4.1.x 記得要加在 my.cnf 的東西
http://blog.dragon2.net/archives/2005/08/08/194.php
如下,不然有些 web app(如 plog 就會哭給你看):
init_connect='SET NAMES utf8′
default-character-set = utf8
default-collation = utf8_general_ci
This entry was posted on 星期一, 八月 8th, 2005 at 1:45 pm and is filed under hacker. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
6 Responses to “MySQL 4.1.x 記得要加在 my.cnf 的東西”
1. ERICJ Says:
八月 8th, 2005 at 2:52 pm
喔喔喔原來可以加在my.cnf阿…
之前修正plog和wordpress的時候,
都是直接加在code裡面…
2. ㄚ凱 Says:
八月 8th, 2005 at 5:22 pm
但是加在 my.cnf 中的前提應該是整個 Server 上的 web app 都是跑 utf8 的話吧…
若Server有人的 phpbb 等跑的是 big5 等其他編碼會不會就掛了?..
3. b6s Says:
八月 8th, 2005 at 5:47 pm
治本的話還是得改程式,有很多 php 程式還停留在 mysql 4.0 時代,表面上說是 UTF-8,但是存進 database 時用的根本是 iso-8859-1…
4. pest Says:
八月 8th, 2005 at 7:39 pm
其實我已經 commit 給 adodb 了,但是它們認為我先前的 patch 要在 _connect() 和 _pconnect() 中多加一個 check, 太花資源, 然後就不鳥我了…
5. clsung Says:
八月 8th, 2005 at 8:45 pm
哦哦,我沒試過別的編碼會不會掛,我現在不用 big5 了….
唉…. 反正見招拆招吧 :p
6. GonDa’s Blog » mysql 4.1 - unicode 編碼- 由 my.cnf 修改 Says:
八月 9th, 2005 at 12:22 pm
[…] 在 Hi! I’m clsung 的 這一篇文
如下,不然有些 web app(如 plog 就會哭給你看):
init_connect='SET NAMES utf8′
default-character-set = utf8
default-collation = utf8_general_ci
This entry was posted on 星期一, 八月 8th, 2005 at 1:45 pm and is filed under hacker. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
6 Responses to “MySQL 4.1.x 記得要加在 my.cnf 的東西”
1. ERICJ Says:
八月 8th, 2005 at 2:52 pm
喔喔喔原來可以加在my.cnf阿…
之前修正plog和wordpress的時候,
都是直接加在code裡面…
2. ㄚ凱 Says:
八月 8th, 2005 at 5:22 pm
但是加在 my.cnf 中的前提應該是整個 Server 上的 web app 都是跑 utf8 的話吧…
若Server有人的 phpbb 等跑的是 big5 等其他編碼會不會就掛了?..
3. b6s Says:
八月 8th, 2005 at 5:47 pm
治本的話還是得改程式,有很多 php 程式還停留在 mysql 4.0 時代,表面上說是 UTF-8,但是存進 database 時用的根本是 iso-8859-1…
4. pest Says:
八月 8th, 2005 at 7:39 pm
其實我已經 commit 給 adodb 了,但是它們認為我先前的 patch 要在 _connect() 和 _pconnect() 中多加一個 check, 太花資源, 然後就不鳥我了…
5. clsung Says:
八月 8th, 2005 at 8:45 pm
哦哦,我沒試過別的編碼會不會掛,我現在不用 big5 了….
唉…. 反正見招拆招吧 :p
6. GonDa’s Blog » mysql 4.1 - unicode 編碼- 由 my.cnf 修改 Says:
八月 9th, 2005 at 12:22 pm
[…] 在 Hi! I’m clsung 的 這一篇文
MySQL 語系
http://www.douzi.org/weblog/archives/000075.html
Set Names UTF8;
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';
Set Names UTF8;
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';
Re: my.cnf
MySQL 5.0yehlu 寫:[mysqld]
default-character-set=utf8
default-collation=utf8_bin
init_connect='SET NAMES utf8'
[client]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8