mysql命令行cmd環(huán)境下轉(zhuǎn)編碼簡(jiǎn)介
mysql命令行相信大家都有一些了解,下面就為您介紹mysql命令行cmd環(huán)境下轉(zhuǎn)編碼的相關(guān)知識(shí),供您參考學(xué)習(xí)之用。
大家都知道
SET NAMES x
相當(dāng)于
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
以下從MySQL5.0官方文檔上摘錄了相關(guān)內(nèi)容,并翻譯,說明了相關(guān)系統(tǒng)變量的用處:
What character set is the statement in when it leaves the client?
statement離開客戶端的時(shí)候是什么字符集?
The server takes the character_set_client system variable to be the character set in which statements are sent by the client.
客戶端送過來的statement,服務(wù)器認(rèn)為它的字符集是系統(tǒng)變量character_set_client的值。
What character set should the server translate a statement to after receiving it?
服務(wù)器收到一個(gè)statement后,會(huì)把它轉(zhuǎn)換成什么字符集?
For this, the server uses the character_set_connection and collation_connection system variables. It converts statements sent by the client from character_set_client to character_set_connection (except for string literals that have an introducer such as _latin1 or _utf8). collation_connection is important for comparisons of literal strings. For comparisons of strings with column values, collation_connection does not matter because columns have their own collation, which has a higher collation precedence.
為了這一用途,服務(wù)器使用系統(tǒng)變量character_set_connection和collation_connection。它把客戶端傳來的statement,從character_set_client字符集轉(zhuǎn)換成character_set_connection字符集(除非字符串中有類似_latin1或者_(dá)utf8的字符集聲明)。collation_connection對(duì)于字符串的比較是非常重要的。對(duì)于字符類型的字段值的比較,collation_connection是不起作用的。因?yàn)樽侄斡凶约旱腸ollation,有更高的優(yōu)先級(jí)。
What character set should the server translate to before shipping result sets or error messages back to the client?
在結(jié)果集由服務(wù)器傳遞給客戶端之前,需要轉(zhuǎn)換成什么字符集?
The character_set_results system variable indicates the character set in which the server returns query results to the client. This includes result data such as column values, and result metadata such as column names.
character_set_results系統(tǒng)變量表明了服務(wù)器返回查詢結(jié)果時(shí)使用的字符集。返回的數(shù)據(jù),有比如字段的值和元數(shù)據(jù)(例如字段名)。
If you are using the mysql client with auto-reconnect enabled (which is not recommended), it is preferable to use the charset command rather than SET NAMES. For example:
如果你使用mysql客戶端的自動(dòng)重連(不推薦使用),***用charset命令,而不是SET NAMES。例如:
mysql> charset utf8
Charset changed
The charset command issues a SET NAMES statement, and also changes the default character set that is used if mysql reconnects after the connection has dropped.
charset命令發(fā)出了一個(gè)SET NAMES語句,并且連接斷開后自動(dòng)重連時(shí)使用的缺省字符集也被修改了。
The database character set and collation are used as default values if the table character set and collation are not specified in CREATE TABLE statements. They have no other purpose.
如果CREATE TABLE中沒有明確指出字符集和collation,那么database字符集和collation將做為缺省值,它們沒有其他的用處。
The character set and collation for the default database can be determined from the values of the character_set_database and collation_database system variables. The server sets these variables whenever the default database changes. If there is no default database, the variables have the same value as the corresponding server-level system variables, character_set_server and collation_server.
缺省database的字符集和collation可以通過系統(tǒng)變量character_set_database和collation_database查看。服務(wù)器當(dāng)缺省database改變時(shí)設(shè)置這些變量的值。如果沒有缺省的database,這些變量的將與對(duì)應(yīng)的服務(wù)器級(jí)的系統(tǒng)變量-character_set_server和collation_server的值相同。
The table character set and collation are used as default values if the column character set and collation are not specified in individual column definitions. The table character set and collation are MySQL extensions; there are no such things in standard SQL.
表的字符集和collation會(huì)作為缺省值,如果列的定義中沒有指明字符集和collation的話。
Every “character” column (that is, a column of type CHAR, VARCHAR, or TEXT) has a column character set and a column collation.
每個(gè)“字符”字段(即CHAR、VARCHAR或者TEXT類型的字段)都有一個(gè)字段字符集和字段校驗(yàn)(collation)。
Every character string literal has a character set and a collation.
每個(gè)字符串有一個(gè)字符集和一個(gè)較驗(yàn)。
A character string literal may have an optional character set introducer and COLLATE clause:
每個(gè)字符串有一個(gè)可選的字符集introducer和COLLATE子句:
[_charset_name]'string' [COLLATE collation_name]
Examples:
SELECT 'string';
SELECT _latin1'string';
SELECT _latin1'string' COLLATE latin1_danish_ci;
【編輯推薦】