緣由:
透過Windows內建命令提示字元,查詢MySQL的資料庫內「資料表」和「資料」等,結果查詢後發現中文字卻出現亂碼。如下圖:
解決方式:
步驟一:藉由「命令提示字元」連結mysql資料庫。
步驟二、輸入show variables like '%character%'; 指令,列出所有的相關訊,如下圖所示:
character_set_client = utf8
character_set_connection = utf8
character_set_results = utf8
※上述三行會影響到中文的呈現。
步驟三、將 set character_set_results=big5; 從 utf8 改成 big5。
------補充:---------------------
MySQL中的運行模式為:
信息輸入路徑:client→connection→server
信息輸出路徑:server→connection→results
由於Windows的命名提示字元所使用的文字碼是「Big5」,如果在MySQL中設定Big5之外的文字碼,只要不使用對應文字碼的終端軟體,就會產生亂碼。然而,直接看mysql資料庫內的資料是正常並無亂碼情況,但資料庫設定為「utf-8」,根據上述描述可知命令提示字元與資料庫的文字碼沒有對應,因此才會出現亂碼;相對的也可能在輸出的時候,造成的亂碼情形,故嘗試先修改character_set_results看看,結果改完後就再也無亂碼情況發生。