UltKit

英文大小寫轉換

貼上文字,即可在八種大小寫樣式之間切換:四種用於寫作,四種用於程式碼。結果會隨輸入即時更新,保留原本的換行,並依照 Unicode 大小寫規則處理,而不只是簡單的 A–Z 對照表。

轉換為

0 個字元 · 0 個字詞 · 0 行

0 個字元 · 0 個字詞 · 0 行

完全在此瀏覽器分頁中執行,您的文字不會被上傳或儲存。

功能說明

大小寫轉換 改寫字母大小寫:UPPER CASE、lower case、Title Case、Sentence case、程式設計風格的 camelCase、snake_case 與 kebab-case,以及 aLtErNaTiNg 交替大小寫。採用 Unicode 大小寫對應,並可選擇土耳其語的有點與無點 i 規則。

處理前
User Profile ID
處理後
user_profile_id

八種樣式與各自的用途

UPPER CASE(全大寫)與 lower case(全小寫)不需多做說明,但它們通常不是最終目的:標題多半需要標題式大小寫(Title Case),也就是每個單字的字首都大寫;而整段貼上的全大寫內文,通常需要改成句首大寫(Sentence case),也就是只有每個句子的第一個字母大寫。各家格式指南對標題中的小字詞看法不一(AP 與 Chicago 都會將簡短的介系詞和冠詞改為小寫,但列出的字詞不同),因此本轉換器會將每個單字都大寫,例外情況交由您自行調整。

程式碼風格會在空格、標點符號與既有的大寫字母處將文字切分成單字,因此 XMLHttpRequest 轉成 snake_case 會變成 xml_http_request。camelCase 是 JavaScript 與 Java 的變數命名慣例,snake_case 是 Python 與 SQL 欄位名稱的標準寫法,kebab-case 則常用於網址、CSS 類別名稱與檔名。aLtErNaTiNg 大小寫交錯純粹是裝飾用途,大多出現在迷因圖中。

大小寫轉換為何比想像中困難

大小寫對應是由 Unicode 標準定義,而不是只依英文的 26 個字母,而且有些對應會改變文字的長度。德文的 ß 轉成大寫會變成 SS,所以單字可能多出一個字母。希臘文大寫 Σ 有兩種小寫形式:位於字中的 σ,以及位於字尾的 ς。像 fi 這類連字在轉成大寫時會展開為兩個字母。

土耳其文與亞塞拜然文有四個字母,英文只有兩個:有點的 i 與 İ,以及無點的 ı 與 I。依照預設的 Unicode 規則,將「İ」轉小寫會得到 i 加上一個組合用的點,將「i」轉大寫則得到一般的 I,這會讓 istanbul 變成錯誤的拼法。勾選土耳其文選項後,轉換器會採用該語系專用的對應,因此 istanbul 會變成 İSTANBUL,ILIK 會變成 ılık。這也是為什麼用 toUpperCase 比對字串的程式碼,在土耳其使用者身上可能出錯,這個錯誤相當有名,甚至有專屬名稱,叫做「土耳其測試(Turkey test)」。

轉換結果更乾淨的小技巧

轉換後最需要檢查的是縮寫。標題式大小寫會把 NASA 寫成 Nasa,句首大寫會把它寫成 nasa,因為轉換器無法得知哪些字是專有名稱。請手動修正,或只轉換需要處理的那一段文字。準備識別名稱時,請先移除引號與表情符號等字元;在 camelCase、snake_case 和 kebab-case 的輸出中,這些字元會被捨棄。如果您還想知道文字有多少字或多少字元,可以貼到字數統計。

常見問題

大小寫轉換會保留換行嗎?
可以。每種樣式都是逐行處理,所以清單與段落的結構會保持不變。在 camelCase、snake_case 和 kebab-case 中,每一行會各自成為一個識別名稱。
為什麼德文的 ß 變成了 SS?
這是 ß 的標準 Unicode 大寫對應。雖然確實有大寫的 ẞ(於 Unicode 5.1 加入),但預設的大小寫轉換仍會產生 SS,這也符合德文拼寫規則的傳統要求。
轉換成 snake_case 時如何切分單字?
它會在每個空格或標點符號處、每次由小寫轉為大寫處,以及縮寫最後一個大寫字母之後接小寫字母之前,開始一個新的單字,因此 HTMLParser 會變成 html_parser。
什麼時候該開啟土耳其語規則?
只要文字是土耳其文或亞塞拜然文就該勾選。未勾選時,i 與 I 會依英文方式對應,使用有點大寫 İ 或無點小寫 ı 的字詞就會拼錯。
可以轉換成 PascalCase 嗎?
請使用 camelCase,並將每一行的第一個字母大寫;PascalCase 與它的差別只在於這個首字母。常數風格(UPPER_SNAKE_CASE)就是先轉成 snake_case,再轉成全大寫。