【问题标题】:Using non-ASCII characters in a cmd batch file在 cmd 批处理文件中使用非 ASCII 字符
【发布时间】:2013-09-19 17:53:52
【问题描述】:

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

有没有办法让这些工作?如果用户也可以使用这些字母,我也很高兴。

我的部分代码:

    @echo off
    /u
    title JustATestProgram
    goto test123

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

当我打开这个文件时,字母是这样的:

【问题讨论】:

  • 您好,请尝试提出一个描述性的标题。该网站存在的主要原因是为了帮助所有追随您的人,因此您需要使您的问题可搜索。
  • 答案是here
  • 我不这么认为@Endoro;似乎 OP 用来创建批处理文件的编辑器的编码不支持这些字符...
  • @Ben 这可能是,但可能不是。我这里有很多编辑,all 都支持这一点。但他的编辑器设置可能有误。

标签: windows batch-file cmd


【解决方案1】:

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

chcp 65001

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我用我的测试程序试过了,但是没有用。我可以展示一张图片(特殊字母如何显示)和部分代码,但我不能,因为我的声誉不够高。
    • 你说“打开这个文件”@batchguy11;你把它打印到一个文件中?你能在你的屏幕上回显这些(不涉及文件)吗?很可能是您用来打开文件的程序未配置为处理 unicode。
    • 是的,我可以在 CMD 上打印 äöå 但由于某种原因不能在这个 .bat 程序中。哦,“打开这个文件”是指我制作了一个名为 test.bat 的程序,它有上面的代码。如何配置文件以使用 unicode
    • 不知道@batchguy11;您需要查看您正在使用的任何文本编辑器的帮助文档。
    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

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

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

      所以我使用字符映射来获取 DOS 代码,然后找出该代码映射到的 ANSI 字符。

      这是记事本的内容。

      echo Ž„™”†
      

      这是通过将角色的 DOS 代码放入记事本中制作的。

      0142、0132、0153、0148、0143、0134 显示为上述 ANSI 字符。

      命令提示符输出

      C:\Windows\system32>echo ÄäÖöÅå
      ÄäÖöÅå
      

      Alt + 字符代码 [Prev |下一个 |内容]

      按住 alt 并按数字键盘上的字符代码将输入该字符。使用的键盘语言必须支持输入该字符。如果您的键盘支持,则代码显示在字符映射中状态栏的右侧,否则状态栏的此部分为空。对于具有众所周知的键的字符,例如字母 A 到 Z,状态栏也为空。

      但是,有两种输入代码的方法。这里要记住的一点是,前 127 个代码的字符是相同的。不同之处在于输入的第一个数字是否为零。如果是,则代码将插入当前字符集中的字符,否则它将插入 OEM 字符集中的字符。超过 255 的代码输入 unicode 字符并为十进制。输入的字符被转换为 OEM 用于 Dos 应用程序和 ANSI 或 Unicode,具体取决于 Windows 的应用程序。请参阅十进制和十六进制之间的转换。

      例如,Alt + 0 然后 6 然后 5 然后松开 Alt 输入字母 A

      来自 Shortcut Keys and Key Modifiers,作者 https://1drv.ms/f/s!AvqkaKIXzvDieQFjUcKneSZhDjw

      【讨论】:

      • Alt 代码不适用于没有数字小键盘的笔记本电脑或键盘
      猜你喜欢
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 2013-03-22
      • 1970-01-01
      相关资源
      最近更新 更多