文本反转
以多种模式即时反转文本
文本反转器一键把任意文本倒过来。你可以逐字符反转整个字符串、交换整段话的词序,或把每个单词内部的字母倒序而保持词的位置不变。它面向回文爱好者、谜题制作者,以及需要测试应用如何处理反向文本或从右到左文本的开发者。可选的保留大小写开关让你在字符移动的同时保留原始的大小写模式。
三种模式的区别
模式按钮改变的正是被重新排列的对象:
- 全反转(Full Reverse) 逐字符反转整个字符串。
Hello World变成dlroW olleH。 - 单词顺序(Word Order) 保持每个单词完整,只反转词的先后顺序。
Hello World变成World Hello。 - 每个单词(Each Word) 保持词序不变,反转每个单词内部的字母。
Hello World变成olleH dlroW。
另有一个 保留大小写位置(Preserve case position) 复选框。开启时,工具按索引逐位比较原文与反转后的字符串,并重新套用原来的大小写模式,因此输出的大写字母会留在原来的位置。
在底层,各模式使用不同的拆分方式。全反转把字符串拆成单个字符并翻转数组。每个单词先按连续空白拆分,只反转非空白片段再重新拼接,因此空格、制表符和换行都能原样保留。单词顺序同样把空白片段当作词元,但它也反转词元数组,所以空隙会跟着它们分隔的词一起移动。最后一个细节正是单词顺序模式下开头的缩进可能出现在输出末尾的原因。
实操示例
| 输入 | 全反转 | 单词顺序 | 每个单词 |
|---|---|---|---|
| The quick brown fox | xof nworb kciuq ehT | fox brown quick The | ehT kciuq nworb xof |
| Coding is fun | nuf si gnidoC | fun is Coding | gnidoC si nuf |
| level | level | level | level |
| Hello | olleH | Hello | olleH |
level 是回文,所以全反转返回原样。短语 A man, a plan, a canal: Panama 常被称作回文,但全反转得到 amanaP :lanac a ,nalp a ,nam A,由于比较是逐字符的、包含大写、逗号、冒号和空格,因此它与原文并不相同。
读这张表还有第二种方式:注意哪些模式保留了单词的完整。全反转破坏了所有词边界的位置,因为空格也跟着翻转,所以输出必须从右往左读才讲得通。单词顺序是唯一让每个词从左到右仍拼写正确的模式,因此它适合变位词类谜题,也适合快速清点列表是否完整。每个单词保持句子的阅读顺序,却让每个词单独看都无法阅读,这正是儿童镜像写字的经典样子。
保留大小写
保留大小写位置选项在单个单词上最容易看清。Hello 反转是 olleH;启用该选项后变成 Olleh,因为第一个字符的大写「位置」被套用到结果的第一个字符,而不是继续跟着字母 H。在混合大小写的句子上,效果会变成一种风格化的大写图案,不再标记原文的专有名词——用于镜像显示名正合适,若大写本身承载含义则恰恰不该使用。
Unicode 与表情符号的限制
反转基于 Unicode 码点,而非字形簇(grapheme cluster)。简单的表情符号、带重音的拉丁字母和 CJK 字符都是单个码点,能安全反转。由多个码点拼合而成的序列则可能被拆散,包括中等肤色的竖起大拇指肤色修饰符、带零宽连接符的家庭表情、由区域指示符组成的国旗对,以及带独立组合重音符号的字母。一个孤立的肤色修饰表情若在词尾被反转,可能渲染成「修饰符 + 基字符」的样子,看起来像坏掉了。
要理解原因,请记住一个视觉字形并不等于一个码点。字符 é 既可以存储为一个预组合码点,也可以存储为字母 e 后跟一个组合锐音符,两种形式在这里行为不同:预组合形式作为一个整体反转,而分解形式会被拆开,重音可能落到错误的字母上。同样的拆分也影响国旗表情,它们是两个只有在相邻时才合并成一面旗的区域指示符码点。还要注意,反转文本不会改变其书写方向,因此一段反转的阿拉伯语或希伯来语短语仍由浏览器按从右到左排版。
常见错误
- 把反转当成加密。 它极易被还原,不提供任何安全性。
- 以为回文检查会忽略大小写和标点。 大写、空格和标点全都参与比较,比较前请先规范化文本。
- 以为保留大小写会把大写移到相同的字母上。 它按位置重新套用大小写模式,而不是按字母身份。
- 忽略单词顺序模式下的空白移动。 开头的空格会变成结尾的空格,因为空白词元也被反转了。
- 以为每个表情符号都能幸存。 多码点表情和组合标记可能被拆散。
实际用途
回文爱好者用全反转测试一个短语在撇开大小写和标点后是否正反皆同。谜题和密室逃脱创作者把答案倒着写,使其不易一眼看穿。开发者反转字符串,以暴露从右到左排版和 Unicode 处理中的 bug。社交媒体用每个单词模式制造仍能逐字母读出的镜像风格。这些用途都不应与保护数据混为一谈。
相关工具
常见问题
为什么带肤色的点赞表情反转后会散架?
反转器按 Unicode 码点翻转文本,而有些表情由多个码点拼合而成。肤色修饰符、带零宽连接符的家庭表情,或一对区域指示符字母,都算多个码点,因此反转字符串可能把修饰符或连接字符搬离基字符,字形便渲染成几个分开的符号。单一码点的简单表情则能干净反转。
单词顺序模式会去掉标点或空格吗?
不会。单词顺序模式原样保留每个词和每个标点,只改变词的先后。词间空白作为独立词元被保留,并随词一起反转,因此开头的空格可能跑到结尾,连续空格也仍保持成组。
保留大小写位置是如何决定大写哪些字母的?
它按索引逐位比较原文与反转后的文本。凡原文第 i 位是大写的,反转结果第 i 位就被强制为大写,小写同理。因此 Hello 反转是 olleH,开启选项后变成 Olleh:大写留在第 1 个位置,而不是跟着 H 走。
为什么 A man, a plan, a canal: Panama 没有被判为回文?
那句著名短语只有在忽略大小写、空格和标点时才是回文。本工具逐字符比较,反转后得到 amanaP :lanac a ,nalp a ,nam A,由于大写 A、逗号、冒号和空格的存在,它与原文不相等。若要做基于词的回文检查,请先去掉这些字符。
换行、制表符和连续空格会怎样?
它们被当作空白词元。在每个单词模式下,词与词之间的它们原样不动;在单词顺序模式下,空白片段作为词元保留并随词一起反转,这可能把空行或缩进空隙挪到输出的别处。
能用反转文本来隐藏密码或机密吗?
不能。反转是一种可见变换,任何人再执行一次同样的操作就能立刻还原。它不是加密,不提供任何保密性。任何机密内容请使用真正的加密或密码管理器。
由 HandyTools Hub 团队审校 · 最后更新