回覆列表
  • 1 # 使用者6998436758653

    mysql 建立 資料庫時指定編碼很重要,很多開發者都使用了預設編碼,亂碼問題可是防不勝防。制定資料庫的編碼可以很大程度上避免倒入匯出帶來的亂碼問題。

    網頁資料一般採用UTF8編碼,而資料庫預設為latin 。我們可以透過修改資料庫預設編碼方式為UTF8來減少資料庫建立時的設定,也能最大限度的避免因粗心造成的亂碼問題。

    我們遵循的標準是,資料庫,表,欄位和頁面或文字的編碼要統一起來

    我們可以透過命令檢視資料庫當前編碼:

    mysql> SHOW VARIABLES LIKE "character%";

    發現很多對應的都是 latin1,我們的目標就是在下次使用此命令時latin1能被UTF8取代。

    第一階段:

    mysql設定編碼命令

    [sql] view plain copy

    SET character_set_client = utf8;

    SET character_set_connection = utf8;

    SET character_set_database = utf8;

    SET character_set_results = utf8;

    SET character_set_server = utf8; 然後 mysql> SHOW VARIABLES LIKE "character%"; 你可以看到全變為 utf8 。

    但是,這只是一種假象

    此種方式只在當前狀態下有效,當重啟資料庫服務後失效。

    所以如果想要不出現亂碼只有修改my.ini檔案,

    從my.ini下手(標籤下沒有的新增,有的修改)

    [client]

    default-character-set=utf8

    [mysql]

    default-character-set=utf8

    [mysqld]

    default-character-set=utf8

    以上3個section都要加default-character-set=utf8,平時我們可能只加了mysqld一項。

    然後重啟mysql,執行

    mysql> SHOW VARIABLES LIKE "character%";

    確保所有的Value項都是utf8即可。

    但是可惡的事情又來了,

    |character_set_client | utf8 |

    | character_set_connection | utf8 |

    | character_set_database | utf8 |

    | character_set_filesystem | binary |

    | character_set_results | utf8 |

    | character_set_server | latin1 |

    | character_set_system | utf8

    注意 該配置| character_set_server | latin1 無法設定成UTF8 互動時候仍然會出現亂碼。

    第二階段:找到下面這東東

    X:\%path%\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe

    重新啟動設定,將預設編碼設定為utf8.這樣就能達到我們所要的效果了。

    mysql> SHOW VARIABLES LIKE "character%";

    +--------------------------+---------------------------------------------------------+

    | Variable_name | Value |

    +--------------------------+---------------------------------------------------------+

    | character_set_client | utf8 |

    | character_set_connection | utf8 |

    | character_set_database | utf8 |

    | character_set_filesystem | binary |

    | character_set_results | utf8 |

    | character_set_server | utf8 |

    | character_set_system | utf8 |

    | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |

    +--------------------------+---------------------------------------------------------+

    8 rows in set

  • 中秋節和大豐收的關聯?
  • 夢見河裡抓魚是啥意思?