文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
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 8.4/share/charsets"
  • 如果字元集是無法動態載入的複雜字元集,您必須重新編譯程式,使其支援該字元集。

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

  • 如果字元集是動態字元集,但您沒有它的組態檔,您應該從新的 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 用戶端 (亦即,設定用戶端字元集以符合系統字元集) 應該可以修正此問題。