Big5 to UTF8

回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

Big5 to UTF8

文章 yehlu »

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管理密碼
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

MySQL 4.0.x 升級至 MySQL 4.1

文章 yehlu »

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 進資料庫會比較沒有問題.
_________________
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

ConvertZ

文章 yehlu »

http://toget.pchome.com.tw/intro/networ ... 14022.html

ConvertZ 快速方便的繁/簡中文內碼轉換器
ConvertZ 是一個中文內碼轉換器,讓您能輕鬆地對純文字檔案或剪貼簿內容在big5/gbk/unicode/utf-8/jis/shift-jis/euc-jp各種內碼之間自由轉換,解決不同地區因為應用不同編碼而產生的溝通問題。
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

MySQL 4.1.x 記得要加在 my.cnf 的東西

文章 yehlu »

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 的 這一篇文
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

MySQL 語系

文章 yehlu »

http://www.douzi.org/weblog/archives/000075.html

Set Names UTF8;

SHOW VARIABLES LIKE 'character_set_%';

SHOW VARIABLES LIKE 'collation_%';
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

my.cnf

文章 yehlu »

[mysqld]
default-character-set=utf8
default-collation=utf8_bin
init_connect='SET NAMES utf8'

[client]
default-character-set=utf8
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

Re: my.cnf

文章 yehlu »

yehlu 寫:[mysqld]
default-character-set=utf8
default-collation=utf8_bin
init_connect='SET NAMES utf8'

[client]
default-character-set=utf8
MySQL 5.0
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
回覆文章

回到「MySQL」