一般在mysql使用中文查詢 都是用 set names character:
character_set_client ,這是使用者告訴mysql查詢是用的什麼字符集。
character_set_connection ,mysql接受到使用者查詢後,按照character_set_client將其轉化為character_set_connection設定的字符集。
character_set_results , mysql將儲存的資料轉換成character_set_results中設定的字符集傳送給使用者。
set names 'x'語句與這三個語句等價:
mysql> set character_set_client = x;
mysql> set character_set_results = x;
mysql> set character_set_connection = x;
set character_set_client = binary;使用二進位制字符集查詢 此三處的字元設定很大程度上會解決亂碼問題,那麼著三個設定具體有什麼作用呢? character_set_client指定的是sql語句的編碼,如果設定為 binary,mysql就當二進位制來處理, character_set_connection指定了mysql 用來執行sql語句的時候使用的編碼,也就是說,程式傳送給mysql 的sql語句,會首先被mysql從character_set_client指定的編碼轉換到character_set_connection指定的編碼,如果character_set_clien指定的是binary,則mysql就會把sql語句按照character_set_connection指定的編碼解釋執行. 當執行sql語句的過程中,比如向資料庫中插入欄位的時候,欄位也有編碼設定,如果欄位的編碼設定和character_set_connection指定的不同,則mysql 會把插入的資料轉換成字段設定的編碼。sql語句中的條件判斷和sql插入語句的執行過程類似. 當sql執行完畢像客戶端返回資料的時候,會把資料從欄位指定的編碼轉換為character_set_results指定的編碼,如果character_set_results=null 則不做任何轉換動作,(注意這裡設定為null不等於沒有設定,沒有設定的時候mysql會繼承全域性設定),
mysql客戶端編碼方式 檢視MySQL編碼方式
mysql的預設編碼是latin1,不支援中文,要支援中文需要把資料庫的預設編碼修改為gbk或者utf8。1 需要以root使用者身份登陸才可以檢視資料庫編碼方式 以root使用者身份登陸的命令為 root localhost bin mysql u root p enter password we...
mysql 程式編碼格式 mysql 修改編碼格式
mysql show variables like character set variable name value character set client latin1 character set connection latin1 character set database latin1 ...
mysql 連線編碼 連線Mysql編碼問題
連線mysql資料庫的時候 string url jdbc mysql localhost 3306 credit?autoreconnect true useunicode true characterencoding utf8 string username root string passwo...