亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字符集和校對究竟是什么意思?

字符集和校對究竟是什么意思?

MYYA 2019-08-03 03:03:49
字符集和校對究竟是什么意思?我能讀到MySQL文件很清楚。但是,如何決定使用哪個字符集呢?校對什么數據有影響?我要求你解釋這兩件事,以及如何選擇它們。
查看完整描述

3 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

來自MySQL博士:

A 字符集是一組符號和編碼。一個校對用于比較字符集中字符的一組規則。讓我們用一個假想字符集的例子來明確區分。

假設我們有一個有四個字母的字母表:‘a’,‘B’,‘a’,‘b’。我們給每個字母一個數字:‘a’=0,‘B’=1,‘a’=2,‘b’=3。字母‘A’是一個符號,數字0是‘A’的編碼,所有四個字母及其編碼的組合是一個字符集。

現在,假設我們要比較兩個字符串值,‘A’和‘B’。最簡單的方法是查看編碼:0表示‘A’,1表示‘B’。因為0小于1,所以我們說‘A’小于‘B’?,F在,我們所做的就是對我們的字符集應用一個排序規則。排序規則是一組規則(在本例中只有一條規則):“比較編碼”。我們將這種最簡單的排序稱為二進制排序。

但是如果我們想說小寫字母和大寫字母是等價的呢?然后我們至少有兩條規則:(1)把小寫字母‘a’和‘b’當作相當于‘A’和‘B’的字母;(2)然后比較編碼。我們稱之為不分案件的校對。它比二進制排序要復雜一些。

在現實生活中,大多數字符集都有許多字符:不僅僅是‘A’和‘B’,而是整個字母,有時是多個字母或數千個字符的東方書寫系統,還有許多特殊的符號和標點符號。在現實生活中,大多數校對都有很多規則:不只是大小寫不敏感,而且重音不敏感(“重音”是一個標記附在一個字符上,就像德語中的‘?’)和多字符映射(比如兩個德語??敝小甇E’=‘OE’的規則)。



查看完整回答
反對 回復 2019-08-05
?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

字符編碼是一種對字符進行編碼的方法,以使它們適合內存。也就是說,如果字符集是ISO-8859-15,歐元符號歐元將被編碼為0xa 4,而在UTF-8中,它將是0xe282 ac。

這個校對是如何比較字符,在后綴9中,有字母作為e é è ê f,如果按照它們的二進制表示進行排序,則e f é ê è但是,如果排序規則設置為,例如,法語,您將按照您認為的順序設置它們,這就是e é è ê是平等的,然后f.


查看完整回答
反對 回復 2019-08-05
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

字符集是所有文字符號的子集。字符編碼指定如何將這些字符映射到數字值。一些字符編碼,如UTF-8和UTF-16,可以對通用字符集中的任何字符進行編碼。其他的,如US-ASCII或ISO-8859-1,只能編碼一個小子集,因為它們每個字符分別使用7位和8位。由于許多標準同時指定了字符集和字符編碼,所以“字符集”一詞經常被自由地替換為“字符編碼”。

排序規則包括指定如何比較字符以進行排序的規則。排序規則可以是特定于地區的:兩個字符的正確順序因語言而異。

選擇字符集和排序規則取決于應用程序是否國際化。如果沒有,你的目標是什么地方?

為了選擇您想要支持的字符集,您必須考慮您的應用程序。如果您正在存儲用戶提供的輸入,可能很難預見到您的軟件最終將被使用的所有區域設置。為了支持它們,最好從一開始就支持UCS(Unicode)。然而,這是有代價的;許多西歐字符現在每個字符需要兩個字節的存儲空間,而不是一個字節。

如果數據庫使用排序規則創建索引,然后使用該索引提供排序結果,則選擇正確的排序規則可以提高性能。但是,由于排序規則通常是特定于地區的,如果需要根據另一個區域設置的規則對結果進行排序,則該索引將毫無價值。




查看完整回答
反對 回復 2019-08-05
  • 3 回答
  • 0 關注
  • 446 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號