9

我正在开发一个 .bat 程序,该程序是用芬兰语编写的。问题是 CMD 不知道这些“特殊”字母,例如Ä、Ö、Å。

有没有办法让这些工作?如果用户也可以使用这些字母,我也会喜欢它。

我的部分代码:

    @echo off
    /u
    title JustATestProgram
    goto test123

    :test123
    echo Letters : Ää Öö Åå
    pause
    exit

当我打开这个文件时,字母看起来像这样:

在此处输入图像描述

4

4 回答 4

16

尝试将此行放在批处理文件的顶部:

chcp 65001

它应该将控制台编码更改为UTF-8,之后您应该能够在脚本中正确读取文件。

于 2013-09-15T14:32:50.380 回答
2

理论上你只需要使用/u(Unicode)开关:

c:\>cmd /u
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

c:\>echo Ä
Ä
于 2013-09-15T14:34:31.183 回答
1

如果您使用 Notepad++,您可以简单地更改字符集。这样做将允许您使用所需的字符集编写字母。西部地区——美国。应该支持它。

您可以在 Notepad++ 的下拉菜单中执行此操作,也可以通过编写 chcp 437 手动执行此操作。但我建议在 Notepad++ 中执行此操作,因为它会向您显示批处理中的输出。因此,您将轻松查看是否使用了正确的代码页。同时,如果您想要更多特殊符号,也可以轻松切换。您也可以按照以前的帖子中所述。试试 UTF-8。

您可以在此处阅读更多相关信息:http: //ss64.com/nt/chcp.html。以下是不同代码页的列表(查看 OEM 页面):代码页标识符

于 2016-01-24T23:08:49.487 回答
0

命令提示符使用 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的快捷键和键修饰符

于 2017-01-03T00:19:57.050 回答