文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


12.15 字元集設定

MySQL 伺服器具有編譯時內建的預設字元集與定序。若要變更這些預設值,請在啟動伺服器時使用 --character-set-server--collation-server 選項。請參閱 第 7.1.7 節,「伺服器命令選項」。定序必須是預設字元集的合法定序。若要判斷每個字元集有哪些定序可用,請使用 SHOW COLLATION 語句或查詢 INFORMATION_SCHEMA COLLATIONS 表格。

如果您嘗試使用未編譯到您的二進位檔中的字元集,您可能會遇到下列問題:

  • 如果您的程式使用不正確的路徑來判斷字元集的儲存位置 (通常是 MySQL 安裝目錄下的 share/mysql/charsetsshare/charsets 目錄),可以使用執行程式時的 --character-sets-dir 選項來修正此問題。例如,若要指定 MySQL 用戶端程式使用的目錄,請將其列在選項檔案的 [client] 群組中。此處提供的範例分別顯示 Unix 或 Windows 的設定可能看起來的樣子:

    [client]
    character-sets-dir=/usr/local/mysql/share/mysql/charsets
    
    [client]
    character-sets-dir="C:/Program Files/MySQL/MySQL Server 9.0/share/charsets"
  • 如果字元集是無法動態載入的複雜字元集,您必須重新編譯程式以支援該字元集。

    對於 Unicode 字元集,您可以使用 LDML 標記法定義定序,而無需重新編譯。請參閱 第 12.14.4 節,「為 Unicode 字元集新增 UCA 定序」

  • 如果字元集是動態字元集,但您沒有它的設定檔,您應該從新的 MySQL 發行版本安裝該字元集的設定檔。

  • 如果您的字元集索引檔案 (Index.xml) 不包含該字元集的名稱,您的程式會顯示錯誤訊息:

    Character set 'charset_name' is not a compiled character set and is not
    specified in the '/usr/share/mysql/charsets/Index.xml' file

    若要解決此問題,您應該取得新的索引檔案,或手動將任何遺失的字元集名稱新增到目前的檔案。

您可以強制用戶端程式使用特定的字元集,如下所示:

[client]
default-character-set=charset_name

這通常是不必要的。但是,當 character_set_systemcharacter_set_servercharacter_set_client 不同,並且您手動輸入字元 (作為資料庫物件識別碼、欄位值或兩者) 時,這些字元可能會在用戶端的輸出中顯示不正確,或者輸出本身的格式可能不正確。在這種情況下,使用 --default-character-set=system_character_set 啟動 mysql 用戶端,也就是將用戶端字元集設定為與系統字元集相同,應該可以解決問題。