【求助】改變 MYSQL 預設語系之問題請教

顯示結果從第 1 筆 到 9 筆,共計 9 筆
  1. #1
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577

    【求助】改變 MYSQL 預設語系之問題請教

    想改變 MYSQL 的預設語系,如下語法參考自官方網站
    D:\mysql4\bin\mysqld-nt --install MySQL4116 --defaults-file=D:\my.ini --default-character-set=utf8 --default-collation=utf8_general_ci
    ...但不知為何會啟動不了,而若將後面兩個預設語系的參數移去便能啟動,只是就無法作變更了...

    另外就是若可改變預設語系成 utf8 ,那麼我原先所有位於資料庫上的資料(Big5)須自行轉換成 utf8 嗎?

    環境:
    XP
    Mysql 4.1.16
    Apache/1.3.31
    PHP/5.0.1



  2. #2
    會員 ethanliu 的大頭照
    註冊日期
    2001-02-01
    討論區文章
    318
    charset 皆可在 my.ini 下做設定
    應該不是在安裝成服務的階段中執行的

    mysqld-nt --install <-- 是在安裝到服務沒錯吧? 很久沒碰 win32平台的mysql

  3. #3
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    引用 作者:ethanliu
    charset 皆可在 my.ini 下做設定
    應該不是在安裝成服務的階段中執行的

    mysqld-nt --install <-- 是在安裝到服務沒錯吧? 很久沒碰 win32平台的mysql
    Thanks,是地.

    那關於--
    改變預設語系成 utf8 ,那麼我原先所有位於資料庫上的資料(Big5)須自行轉換成 utf8 嗎?....須考慮此問題嗎,還是它會自行轉換呢?

    若如下方式設定 my.ini :
    (1)在[mysqld]區段中
       default-character-set=utf8
    (2)在[client]區段中
       default-character-set=utf8
    這是我以前在 mysql 3.23 的方法,不知在 4.1.16 版又該如何設定?

  4. #4
    會員 ethanliu 的大頭照
    註冊日期
    2001-02-01
    討論區文章
    318
    1. 是的,須要先自行轉換
    2. 還好,沒有太大差異,我的習慣是

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

  5. #5
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    Thanks# 請問您:
    init_connect='SET NAMES utf8' -> 意義上有何作用?
    my.ini 中的 [client] 區塊也要作同樣的設定嗎?

    依您所說我變更了 my.ini 的設定,但,當我執行以下兩個查詢時,發現還有一些仍然維持原來的 big5 字符.
    需要全部變更成 utf8 嗎?..(若要,該如何於 my.ini 中設定?)
    mysql> SHOW VARIABLES LIKE 'character_set_%';
    character_set_client | big5
    character_set_connection | big5
    character_set_results | big5

    mysql> SHOW VARIABLES LIKE 'collation_%';
    collation_connection | big5_chinese_ci

    順便問一下之前 mysql 沒改成 utf8 時,
    當我在 windows xp 下的命令提示字元(command line) 執行查詢時,為何調出來的資料只要是繁體中文字的都變成亂碼? ...但在browser上瀏覽網頁就正常?
    (ps. 我的 moveable type blog 的 code - 即 *.php 都是以 utf8 編碼存檔,meta tag 中也設定了charset=utf-8,所以我想 mt 可能其在 code 中有自行轉碼的機制 )

    我可否這樣想,因命令提示字元程式預設是以 big5 的方式解碼,所以當調出來的資料是以 utf8 編碼時就變成了亂碼...不知這樣想對不對?



  6. #6
    會員 ethanliu 的大頭照
    註冊日期
    2001-02-01
    討論區文章
    318
    1.
    SET NAMES 等於同時設定了
    character_set_client
    character_set_results
    character_set_connection
    這三個,這樣才會達到全部與編碼相關的設都全部更改

    2.
    其實只要下在 [mysqld] 即可,至少我都只有這樣啦
    更改之後有記得重新啟動 mysql 嗎?
    service mysql restart

    3.
    其實這會分很多部份來說,很難就單一因素來看
    很可能你"以為"你存到mysql的資料是big5編碼,實際上卻是 latin1 編碼
    也就是說只要你存/取mysql時所使用的編碼是同一個,解出來的結果就算正確
    至於顯示出來時,又跟你顯示的環境有關
    wxp 應該可以說是unicode(還是應該說半個unicode)
    而browser則直接指定了正確的字元編碼,所以得到你要的正確結果

    我沒有實際玩過或看 Movable Type 的原始碼,所以這部份我不敢下任何定論
    不過我想是沒有,實際上應該還是上述說明

    其實這些設定並不是死的,你也可以程式中去設定這些值,例如
    SET NAMES xx
    SET CHARACTER_SET_CLIENT=xx
    SET CHARACTER_SET_RESULTS=xx


    mysql 的說明應該會對你有幫助
    http://dev.mysql.com/doc/refman/5.0/en/charset.html

  7. #7
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    您提到當變更語系後,若原先的資料(我有好幾個資料庫 mtblog phpbb ...)為不同的語系則要手動變更,那麼我是否一一下此指令即可? (還是得細分到每個table一一轉換)
    mysql> ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


    另外,在 my.ini 之 [mysqld] 中設定的 init_connect='SET NAMES utf8' 是不是不包含以 command line 執行 mysql.exe 方式連線進來的 client 端呢? 因為我執行 mysql> show variables; 發現以下三個變數值都沒變成 utf8 !
    -----------------------------
    character_set_client
    character_set_connection
    character_set_results
    -----------------------------

    我試了好幾個語系但都看不出來如下設定是反映在哪方面?
    [mysql]
    default-character-set=utf8

  8. #8
    會員 b90220208 的大頭照
    註冊日期
    2003-06-25
    討論區文章
    577
    如下 6 點是我的設定與測試結果:

    1. 所有 *.php 以 utf8 存檔

    2. html code 也指定了:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Language" Content="UTF-8" />

    3. mysql> ALTER DATABASE forum DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    4. mysql> ALTER TABLE forum_table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    5. my.ini 相關設定如下:
    [mysqld]
    init_connect='SET NAMES utf8'
    default-character-set=utf8
    default-collation=utf8_general_ci

    6. 執行查詢 mysql> show variables; 相關結果如下:
    character_set_client | utf8
    character_set_connection | utf8
    character_set_database | utf8
    character_set_results | utf8
    character_set_server | utf8
    character_set_system | utf8

    collation_connection | utf8_general_ci
    collation_database | utf8_general_ci
    collation_server | utf8_general_ci

    [Question]:
    為何在 "命令提示字元" 執行查詢
    mysql> SET NAMES 'utf8';
    mysql> select * from forum_table;
    竟出現亂碼 (但在 browser 瀏覽是正確無誤的)
    .....請問是我資料庫的編碼轉換沒成功嗎?

    ps. 我重新以 browser 瀏覽網站並指定 browser 以 utf8 編碼檢視下再 post 新文章結果也一樣, browser 瀏覽沒問題,但換在 "命令提示字元" 查詢就又變成了亂碼!.....Why??

  9. #9
    會員
    註冊日期
    2002-09-30
    討論區文章
    488

    回覆: 【求助】改變 MYSQL 預設語系之問題請教

    求助 ~ FC3 MySQL 3.x匯入到F7 MySQL 5.x字元集問題
    http://forum.icst.org.tw/phpBB2/viewtopic.php?t=12618

    有人可以幫忙看看解決嗎 ? THX

類似的主題

  1. [請教]變更影片的預設語系...
    作者:bobhsieh 所在討論版:-- 多 媒 體 討 論 版
    回覆: 0
    最後發表: 2011-08-25, 05:32 PM
  2. 【求助】遠端協助的一些問題請教
    作者:b90220208 所在討論版:-- Windows 討 論 版
    回覆: 0
    最後發表: 2005-09-14, 02:42 PM
  3. 【教學】使用 Outlook 收 Yahoo! 郵件~不需要更改YAHOO的網頁預設語系
    作者:Do_Re_Mi 所在討論版:-- 網 路 軟 體 討 論 一 版 (Browser,Email
    回覆: 0
    最後發表: 2004-02-14, 05:29 PM
  4. 預設語系問題【求助】
    作者:warzero 所在討論版:-- HELP ME 電 腦 軟 硬 體 急 救 版
    回覆: 2
    最後發表: 2003-11-20, 11:57 PM
  5. 【求助】mandrake 9.1下架設語系問題!
    作者:actkrtsao 所在討論版:-- FreeBSD & Linux 討 論 版
    回覆: 4
    最後發表: 2003-05-17, 09:12 PM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •