字母大小寫
![]() | 此條目可參照英語維基百科相應條目來擴充。 (2022年7月4日) |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/79/A_%28capital_and_small%29.svg/136px-A_%28capital_and_small%29.svg.png)
字母大小寫(或大小寫)是在某些語言的書寫表示中,區分大寫字母和小寫字母的字母。區分大寫和小寫的書寫系統中具有兩組平行的字母,通常一組中的字母在另一組中具有對等的字母。大小寫是同一個字母的不同表示:它們具有相同的名稱、發音、字母順序排序。
通常字母大小寫在文字中同時出現。大小寫的選擇一般由語法或特定學科的慣例來確定。大寫字母主要用於一些特殊位置,如句子的第一個字母或專有名詞,因此小寫字母在一般文字中更為常見的。在某些情況下僅使用一種寫法,例如用大寫字母標註的工程設計圖紙,它更容易區分字母,特別是在小字體的情況下。另一方面,在數學中,字母大小寫可以指示對象之間的關係,大寫字母通常表示大範圍的對象(例如,X可以是包含x的集合)。
大寫 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
小寫 | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
大小寫摺疊和大小寫轉換
[編輯]在為電腦開發的字符集中,每個大寫字母和小寫字母都被編碼為一個單獨的字符。為了實現大小寫摺疊和大小寫轉換,軟件需要將代表一個字母的大小寫變體的兩個字符連接起來。(一些舊的字符編碼系統,如博多式電報機,只有一組字母,通常是大寫字母)。
大小寫不敏感的操作的結果會將大小寫摺疊。「大小寫摺疊」這一名詞來自於將字符編碼表「摺疊」,使大寫和小寫字母重合為一的意思。計算機應用中經常需要進行大小寫轉換,例如要對兩個字串進行不區分大小寫的比較時,就需先轉換大小寫。 許多高級編程語言都提供簡單的指令來進行大小寫轉換。對ASCII字符集這方面的指令尤其完善。
大小寫變體是否被視為相互等同,取決於計算機系統和環境。例如,用戶密碼通常是區分大小寫的,以讓密碼字符的選擇更為多樣,使其更難被破解。相比之下,在關鍵詞搜索中通常會忽略大小寫,以便在查詢和被查詢的材料中忽略關鍵詞大寫的不重要變化。
Unicode的大小寫摺疊和語言識別
[編輯]Unicode中,每個字符的大小寫屬性都屬於下列三種之一:大寫、小寫和標題大小寫(在這裡,"標題大小寫 "是指合字和二合字母等單一字符中,混合了不同大小寫的字母,當中字符的第一部分為大寫,第二部分為小寫[1])。這些屬性將同一語言中所有不同大小寫的字符聯繫起來。
正如Unicode技術說明第26號[2] 簡要地說明了這個情況:"就實行而言,任何試圖統一拉丁文、希臘文和西里爾文的做法都會導致混亂[並]使大小寫操作變得一團糟,實際上是使所有的大小寫操作都具有上下文敏感性[...]"。換句話說,雖然像A、B、E、H、K、M、O、P、T、X、Y等字母的形狀在拉丁文、希臘文和西里爾文之間是共享的(它們的規範形式的微小差異可被認為只屬排版上的差異),但如果一個多語言字符集或字體只為大寫字母B提供一個代碼點,那還是有問題的,因為這將使文字處理程序很難將這個大寫字母變為小寫字母的三種不同選擇之一,即拉丁文b(U+0062)、希臘文β(U+03B2)或西里爾文в(U+0432)。因此,相應的拉丁文、希臘文和西里爾文大寫字母(分別為U+0042、U+0392和U+0412)也被編碼為獨立的字符,儘管它們的外觀基本相同。如果不考慮字母大小寫,"統一的歐洲字母表"——如ABБCГDΔΕЄЗFΦGHIИJ...Z,每種語言都有適當的子集——是可行的;但考慮到字母大小寫,就會非常清楚這些字母表是相當不同的符號集。
文字處理的方法
[編輯]大多數現代文字處理器提供自動大小寫轉換,只需簡單的點擊或按鍵。例如,在Microsoft Office Word中,選中文本後,可以在對話框中選擇將文本切換為大寫、小寫、或標題大小寫(即首字母大寫)。快捷鍵⇧ Shift+F3也有相同效果。
編程中的方法
[編輯]在某些形式的BASIC中,有兩種轉換大小寫的方法。
UpperA$ = UCASE$("a")
LowerA$ = LCASE$("A")
C和C++,以及任何符合其標準庫的類C語言都在文件ctype.h中提供這些大小寫轉換函數。
char upperA = toupper('a');
char lowerA = tolower('A');
不同的字符集的大小寫轉換是不同的。在ASCII或EBCDIC字符集中,大小寫可以在C語言中通過以下方式轉換:
#define toupper(c) (islower(c) ? (c) – 'a' + 'A' : (c))
#define tolower(c) (isupper(c) ? (c) – 'A' + 'a' : (c))
這方法可行是因為在這些字符集中大寫字母和小寫字母的間隔是固定的。在ASCII中,字母是連續的,而在EBCDIC中,它們不是連續的;儘管如此,大寫字母是以相同的模式排列的,並且與小寫字母有相同的間隔,所以這個方案仍然有效。
一些計算機編程語言提供了將文本轉換為所有單詞都大寫的指令。Visual Basic稱其為 "適當大小寫";Python稱其為 "標題大小寫"。這與通常的標題大小寫慣例不同,例如英語中的不重要單詞慣常不大寫。
引用
[編輯]- ^ Character Properties, Case Mappings & Names FAQ. Unicode. [19 February 2017]. (原始內容存檔於2021-12-15).
- ^ Unicode Technical Note #26: On the Encoding of Latin, Greek, Cyrillic, and Han. [23 April 2007]. (原始內容存檔於2022-08-04).