在cmd批处理文件中使用非ASCII字符

时间:2013-09-15 14:29:21

标签: windows batch-file cmd

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

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

我的部分代码:

    @echo off
    /u
    title JustATestProgram
    goto test123

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

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

Enter image description here

4 个答案:

答案 0 :(得分:8)

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

chcp 65001

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

答案 1 :(得分:1)

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

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

c:\>echo Ä
Ä

答案 2 :(得分:1)

如果您使用Notepad ++,则只需更改charset即可。这样做可以让你写出所需字符集中的字母。西部地区 - 美国。应该支持它。

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

您可以在此处详细了解:http://ss64.com/nt/chcp.html。这里是不同代码页的列表(查看OEM页面): Code Page Identifiers

答案 3 :(得分:0)

命令提示符使用DOS编码。 Windows使用ANSI或Unicode。

PS我假设你在美国的代码页437而不是国际英语/西欧850。

所以我使用Character Map获取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的应用程序。请参见在十进制和十六进制之间转换。

     

E.G。,Alt + 0然后6然后5然后释放Alt输入字母A

来自我的{em>快捷键和密钥修饰符 https://1drv.ms/f/s!AvqkaKIXzvDieQFjUcKneSZhDjw