跳到正文

转换大小写

全部大写、全部小写、标题格式、句首大写以及各种编程命名格式——并且解决了其他转换工具常出错的两个问题:真正的标题大小写规则,以及“i”不会大写成“I”的语言。

  • 绝不存储
  • 无需排队,无需等待
  • 无需注册,无水印
转换为
语言规则
转换结果

转换结果将显示在这里。

使用方法

1

粘贴文本

一个短语、一份列表、一个变量名——什么都可以。

2

选择格式

每种格式都附有示例,您不用猜“kebab-case”长什么样。

3

复制结果

如果要一次处理一份列表,可以逐行转换。

每种格式适用的规则

“标题格式”和“句首大写”对您已经输入的大写字母的处理方式正好相反,这一点最容易让人出错。标题格式会让首字母之后还带有大写字母的词原样保留——iPhone、NASA、McDonald——只对其余的词做判断。句首大写则先把整段文字转成小写,再在每个句号、问号、感叹号或省略号之后大写,所以NASA会变成Nasa,也没有任何例外清单能保护它。句首大写也没有缩写规则,所以“e.g. this”会多出一个大写字母,而本站的字数统计根本不会在这里断句。对于满是缩写词的段落,标题格式更安全,句首大写则需要转换后再检查一遍。

默认的语言设置是不指定任何语言。除非您从列表中选择土耳其语、阿塞拜疆语、立陶宛语或希腊语,否则大写和小写转换都使用浏览器的普通规则,因此在默认设置下转换的土耳其语文本,会按英语的方式处理带点和无点的i——页面如果在您粘贴的内容中发现无点的ı或带点的İ,会明确提示,而不是默默放过。关于德语ß变成SS的警告适用于“全部大写”和CONSTANT_CASE,这是您最可能用到的两种;“大小写交替”和“大小写互换”也会把它转成大写,但不会发出警告。

标题格式只按空白来逐词判断,所以用连字符或斜杠连接的内容都算一个词,只会得到一个大写字母:“mother-in-law”会变成“Mother-in-law”。编程命名格式的拆分依据则完全不同——大写字母、数字、空格、下划线、连字符、点和斜杠——另外还有一条规则会把连续的大写字母保持在一起,正是这条规则让XMLHttpRequest变成xml_http_request,而不是xmlhttp_request。逐行转换列表时只按换行符(LF)拆分,所以Windows文件中的回车符会留在每一行的末尾,并随之带入结果中。

如果您需要的是别的

任何需要能够还原的内容,都根本不应该转成大写。从SS无法回到ß,从去掉重音的希腊语大写字母无法回到带重音的原文,一份名单中您本需要的词内大写字母也无法恢复——信息是丢失了,而不是隐藏了,所以请把原文和转换结果一起保留。这不是本页的局限,而是大小写转换本身的性质。

如果处理的是文件而不是粘贴的文本,那些最常见的命令行方案恰恰是陷阱。tr和awk的toupper只支持ASCII:它们会把名单中的英文字母转成大写,却让每个带重音的字母原封不动,悄悄破坏了名单,看起来却像是成功了。用一行Python或Node代码则能按Unicode正确处理;对于土耳其语、阿塞拜疆语、立陶宛语或希腊语,您需要调用一个接受区域设置参数的函数——与本页提供的是同样的四种语言,原因也一样。把一个文件夹里的文件名改成小写又是另一回事:在不区分大小写的文件系统(macOS和Windows的默认设置)上,README和readme会被视为同一个名称。

常见问题

我的文本会被存储吗?

不会。不存储任何内容,也不发出任何请求。页面加载完成后,即使断开网络也照样能用。

这里的标题格式有什么不同?

它遵循真正的格式规范,而不只是把每个词的首字母大写。“the lord of the rings”会变成“The Lord of the Rings”——“of”和第二个“the”保持小写,因为冠词、连词和短介词都应小写。首词和末词无论多么次要都会大写,所以“of mice and men”会变成“Of Mice and Men”。大多数在线转换工具会输出“The Lord Of The Rings”,没有任何一本格式指南认可这种写法。

为什么“iPhone”和“NASA”没有被改动?

因为词中间带有大写字母的词,是有意这样拼写的。把“iPhone”改成“Iphone”,或者把“NASA”改成“Nasa”,都是错误的,所以任何词中含有大写字母的词都会原样保留。

土耳其语选项有什么用?

土耳其语和阿塞拜疆语有两个字母i:一个带点,一个不带点。小写“i”大写后是“İ”(带点),而“I”小写后是“ı”(不带点)。所以“istanbul”按英语规则转大写会得到“ISTANBUL”,这并不是这座城市的名字——它应该是“İSTANBUL”。这是真实程序中一个广为人知的错误来源,也是这里让您选择语言而不是默认假定的原因。希腊语和立陶宛语也有各自的规则,这里同样支持。

能把camelCase转换为snake_case吗?

能,而且各个方向都行——camelCase、PascalCase、snake_case、CONSTANT_CASE、kebab-case、dot.case和path/case之间都可以互相转换。缩写词也能正确处理,而这通常是最容易出错的地方:“XMLHttpRequest”会拆分为XML、Http和Request,得到“xml_http_request”。只在小写到大写的边界处拆分的转换工具,会得到“xmlhttp_request”。

转换为大写会丢失什么吗?

有时会,而且发生时会提醒您。德语“ß”大写后变成“SS”,无法自动还原——“STRASSE”原本可能是“Straße”,也可能是“Strasse”。希腊语在大写时会去掉重音符号,这在希腊语中是正确的,但同样是单向的。

小贴士: 有两种转换会丢失信息,无法撤销。德语ß转大写会变成SS,而且无法还原,因为SS本身也可能只是两个字母。土耳其语和阿塞拜疆语有带点和无点两种i,其映射方式与英语不同——如果您的文本是这两种语言之一,请选择对应语言,否则i和I会转换错误。

把这个工具放到您的网站上

博客、课程页面或帮助文章均可免费使用。粘贴一段代码,访客就能直接在您的页面上使用。