【发布时间】:2015-02-09 15:41:08
【问题描述】:
我正在制作一个使用这些字符的批处理文件:
˧ ˥ ˪ ˫
它不起作用,它只是自行终止。 我见过人们使用这样的字符:
Å
不是字符而是变成字符,谁能给我一个列表,显示上面的字母类型以及它变成了什么?
【问题讨论】:
-
从控制台运行
chcp会得到什么?
标签: unicode cmd special-characters
我正在制作一个使用这些字符的批处理文件:
˧ ˥ ˪ ˫
它不起作用,它只是自行终止。 我见过人们使用这样的字符:
Å
不是字符而是变成字符,谁能给我一个列表,显示上面的字母类型以及它变成了什么?
【问题讨论】:
chcp会得到什么?
标签: unicode cmd special-characters
如果您想编写使用这些字符的控制台批处理文件,您需要一个可以使用控制台代码页保存批处理文件的编辑器。要检查那是什么,请输入:
C:\>chcp
Active code page: 437
这是我的美国 Windows 系统的结果。西欧版本的 Windows 通常是代码页 850。
一个好的编辑器是Notepad++。在编辑器中设置该编码(编码、字符集、西欧、OEM-US)并将以下字符复制到其中:
@echo off
echo ╔═╦═╗ ┌─┬─┐ ╓─╥─╖ ╒═╤═╕
echo ║ ║ ║ │ │ │ ║ ║ ║ │ │ │
echo ╠═╬═╣ ├─┼─┤ ╟─╫─╢ ╞═╪═╡
echo ║ ║ ║ │ │ │ ║ ║ ║ │ │ │
echo ╚═╩═╝ └─┴─┘ ╙─╨─╜ ╘═╧═╛
将文件保存为test.bat 并从控制台运行它:
C:\>test
╔═╦═╗ ┌─┬─┐ ╓─╥─╖ ╒═╤═╕
║ ║ ║ │ │ │ ║ ║ ║ │ │ │
╠═╬═╣ ├─┼─┤ ╟─╫─╢ ╞═╪═╡
║ ║ ║ │ │ │ ║ ║ ║ │ │ │
╚═╩═╝ └─┴─┘ ╙─╨─╜ ╘═╧═╛
当您在 Notepad++ 中再次打开文件时,您可能会看到如下内容:
@echo off
echo ÉÍËÍ» ÚÄÂÄ¿ ÖÄÒÄ· ÕÍÑ͸
echo º º º ³ ³ ³ º º º ³ ³ ³
echo ÌÍÎ͹ ÃÄÅÄ´ ÇÄ×Ķ ÆÍØÍµ
echo º º º ³ ³ ³ º º º ³ ³ ³
echo ÈÍÊͼ ÀÄÁÄÙ ÓÄÐĽ ÔÍÏ;
由于文件中没有指明其中的字符代表什么代码页,Notepad++ 可能会选择所谓的ANSI 代码页。在美国 Windows 上是 Windows-1252。只需再次选择OEM-US 编码即可正常显示。
【讨论】:
ÉÍËÍ» ÚÄÂÄ¿ ÖÄÒÄ· ÕÍÑÍ 的问题没有发生,但是当我切换到chcp 437 时,我的控制台变得更扁平且不那么高了。
您可以使用的字符取决于设置的控制台代码页。您可以通过chcp 看到它。在许多系统上,它是 850 或 437。然后您可以在 that code page 中查找字符,或者找到一个支持您需要的字符并在批处理文件中使用 chcp 尽早设置它。
请注意,尽管这是该过程的设置,因此如果有人需要在之后继续使用控制台窗口,将其窗帘更改为另一种颜色可能不太好。代码页 65001 也是 UTF-8,但存在一系列问题和缺点,使其使用起来相当棘手。
还请注意,记事本不是一个有用的文本编辑器,用于编写需要更多 ASCII 的批处理文件,因为 Windows 非控制台部分中的传统编码是不同的。这可能是你的意思,Å变成了另一个字符。
【讨论】:
@echo off echo ÉÍËÍ» ÚÄÂÄ¿ ÖÄÒÄ· ÕÍÑ͸ echo º º º ³ ³ ³ º º º ³ ³ ³ echo ÌÍÎ͹ ÃÄÅÄ´ ÇÄ×Ķ ÆÍØÍµ echo º º º ³ ³ ³ º º º ³ ³ ³ echo ÈÍÊͼ ÀÄÁÄÙ ÓÄÐĽ ÔÍÏ;你能把这些列表发给我吗?
您只需要在任何文本编辑器(包括标准的 Windows 记事本)中工作的等价文件:
Notepad: ┌┬┐ ├┼┤ └┴┘ ─ │
cmd.exe: Ú¿ ÃÅ´ ÀÁÙ Ä ³
Notepad: ╔╦╗ ╠╬╣ ╚╩╝ ═ ║
cmd.exe: ÉË» Ìι Èʼ Í º
将此表复制到一个文本文件中,您必须将其保存为 Unicode 编码。然后,当您想在批处理文件中插入字符时,只需选择要显示的图形字符下方的那个即可。
注意:这些字符对于代码页 850 或 437 是正确的。
这张表是从this answer复制过来的。
【讨论】: