我正在开发一个 .bat 程序,该程序是用芬兰语编写的。问题是 CMD 不知道这些“特殊”字母,例如Ä、Ö、Å。
有没有办法让这些工作?如果用户也可以使用这些字母,我也会喜欢它。
我的部分代码:
@echo off
/u
title JustATestProgram
goto test123
:test123
echo Letters : Ää Öö Åå
pause
exit
当我打开这个文件时,字母看起来像这样:

我正在开发一个 .bat 程序,该程序是用芬兰语编写的。问题是 CMD 不知道这些“特殊”字母,例如Ä、Ö、Å。
有没有办法让这些工作?如果用户也可以使用这些字母,我也会喜欢它。
我的部分代码:
@echo off
/u
title JustATestProgram
goto test123
:test123
echo Letters : Ää Öö Åå
pause
exit
当我打开这个文件时,字母看起来像这样:

尝试将此行放在批处理文件的顶部:
chcp 65001
它应该将控制台编码更改为UTF-8,之后您应该能够在脚本中正确读取文件。
理论上你只需要使用/u(Unicode)开关:
c:\>cmd /u
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
c:\>echo Ä
Ä
如果您使用 Notepad++,您可以简单地更改字符集。这样做将允许您使用所需的字符集编写字母。西部地区——美国。应该支持它。
您可以在 Notepad++ 的下拉菜单中执行此操作,也可以通过编写 chcp 437 手动执行此操作。但我建议在 Notepad++ 中执行此操作,因为它会向您显示批处理中的输出。因此,您将轻松查看是否使用了正确的代码页。同时,如果您想要更多特殊符号,也可以轻松切换。您也可以按照以前的帖子中所述。试试 UTF-8。
您可以在此处阅读更多相关信息:http: //ss64.com/nt/chcp.html。以下是不同代码页的列表(查看 OEM 页面):代码页标识符
命令提示符使用 DOS 编码。Windows 使用 ANSI 或 Unicode。
PS我假设您在美国使用代码页 437 而不是国际英语/西欧 850。
所以我使用字符映射来获取 DOS 代码,然后找出代码映射到的 ANSI 字符。
这是记事本的内容。
echo Ž„™”†
这是通过将字符的 DOS 代码放入记事本中制作的。
0142, 0132, 0153, 0148, 0143, 0134 显示为上述 ANSI 字符。
命令提示符输出
C:\Windows\system32>echo ÄäÖöÅå
ÄäÖöÅå
Alt + 字符代码[上一个 | 下一个 | 内容]
按住 alt 并按数字键盘上的字符代码将输入该字符。使用的键盘语言必须支持输入该字符。如果您的键盘支持,则代码显示在字符映射中状态栏的右侧,否则状态栏的此部分为空。状态栏也为具有众所周知的键的字符(例如字母 A 到 Z)清空。
但是有两种输入代码的方法。这里要记住的一点是,前 127 个代码的字符是相同的。不同之处在于输入的第一个数字是否为零。如果是,则代码将插入当前字符集中的字符,否则将插入 OEM 字符集中的字符。超过 255 的代码输入 unicode 字符并为十进制。输入的字符被转换为 OEM 用于 Dos 应用程序和 ANSI 或 Unicode,具体取决于 Windows 的应用程序。请参阅在十进制和十六进制之间转换。
EG, Alt + 0 然后 6 然后 5 然后松开 Alt 输入字母 A
来自我在https://1drv.ms/f/s!AvqkaKIXzvDieQFjUcKneSZhDjw的快捷键和键修饰符