UltKit

英文大小写转换

粘贴文本,即可在八种大小写样式之间切换:四种用于写作,四种用于代码。结果随输入实时更新,保留换行,并遵循 Unicode 大小写规则,而不是简单的 A–Z 对照表。

转换为

0 个字符 · 0 个词 · 0 行

0 个字符 · 0 个词 · 0 行

完全在当前浏览器标签页中运行,您的文本不会被上传或保存。

功能说明

大小写转换 改写字母大小写:全大写、全小写、标题式大写、句首大写,程序员常用的 camelCase、snake_case 和 kebab-case,以及交替大小写。采用 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)。

获得规范结果的技巧

转换后最需要检查的是缩写词。Title Case 会把 NASA 写成 Nasa,Sentence case 会写成 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,再转 UPPER CASE。