2013-09-15 3 views
4

Я работаю над программой .bat, и программа написана на финском языке. Проблема в том, что CMD не знает этих «специальных» букв, таких как Ä, Ö, Å.Использование символов, отличных от ASCII, в командном файле cmd

Есть ли способ сделать эти работы? Мне также понравилось бы, если бы пользователь мог использовать эти письма.

Часть моего кода:

@echo off 
    /u 
    title JustATestProgram 
    goto test123 

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

Когда я открываю этот файл, буквы выглядеть следующим образом:

Enter image description here

+0

Привет, пожалуйста, попробуйте придумать описательное название. Основная причина существования этого веб-сайта - помочь всем, кто приходит после вас, чтобы вам нужно было искать свой вопрос. – Ben

+0

ответ [здесь] (http://stackoverflow.com/questions/1259084/what-encoding-code-page-is-cmd-exe-using) – Endoro

+0

Я не думаю, что @Endoro; похоже, что кодирование редактора, используемого OP для создания их командного файла, не поддерживает эти символы ... – Ben

ответ

3

Попробуйте поместить эту строку в верхней части пакетного файла:

chcp 65001 

Он должен изменить кодировку консоли на UTF-8, и после этого вы сможете прочитать файл в скрипте.

1

Теоретически вам просто нужно использовать /u (Unicode) переключатель:

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

c:\>echo Ä 
Ä 
+0

Я пробовал это с моей тестовой программой, но это не сработало. Я мог бы показать картинку (как появляются специальные письма) и часть кода, но я не могу, потому что моя репутация недостаточно высока. – batchguy11

+0

Мне нужна помощь! Вы знаете, как это решить? – batchguy11

+0

Я добавил изображение и часть своего кода – batchguy11

1

Если вы используете Notepad ++, вы можете просто изменить кодировку. Это позволит вам писать буквы из нужной кодировки. Западный регион - США. должен поддерживать его.

Вы можете сделать это в раскрывающемся меню в Notepad ++ или вручную, написав chcp 437. Но я рекомендую сделать это в Notepad ++, так как он покажет вам результат, как будет в пакете. Таким образом, вы легко увидите, используете ли вы правильную кодовую страницу. И в то же время легко переключаться, если вы хотите получить больше специальных символов. Вы также можете, как указано в предыдущих сообщениях. Попробуйте UTF-8.

Подробнее об этом можно узнать здесь: http://ss64.com/nt/chcp.html. И вот список на разных страницах кода (проверьте страницы OEM): Code Page Identifiers

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 + Character Code [Предыдущая | Следующая | Содержание]

Удерживая нажатой клавишу alt и нажав символ на цифровой клавиатуре, введите этот символ. Используемый язык клавиатуры должен поддерживать ввод этого символа. Если ваша клавиатура поддерживает его, код отображается в правой части строки состояния в символьной карте, иначе этот раздел строки состояния пуст. Строка состояния также пуста для символов с хорошо известными клавишами, например буквы от А до Z.

Однако есть два способа ввода кодов. Здесь следует помнить, что символы одинаковы для первых 127 кодов. Разница заключается в том, что первое введенное число равно нулю. Если это так, то код будет вставлять символ из текущего набора символов, иначе он будет вставлять символ из набора символов OEM. Коды более 255 вводят символ юникода и находятся в десятичной форме. Введенные символы преобразуются в OEM для приложений Dos и ANSI или Unicode в зависимости от приложения Windows. См. Раздел Преобразование между десятичным и шестнадцатеричным.

EG, Alt + 0, то 6, то 5, затем отпустите Alt входит буква А

С Сочетания клавиш и модификаторами Мной в https://1drv.ms/f/s!AvqkaKIXzvDieQFjUcKneSZhDjw

Смежные вопросы