Привет людей переполнение стека. Я и мой друг делают игру на языке программирования Batch/.bat. До этого момента у нас не было проблем, которые мы не могли исправить. Однако, когда я начал переводить его в испанскую версию, у нас возникли проблемы. Когда я попытался использовать слова «эхо» программы на испанском языке с акцентами (например, Á, É), это не сработает. Я установил тестовую страницу с программой echo "áéíóú"
, но она вышла с чем-то еще, я не могу ее скопировать и вставить прямо сейчас. У меня возникла аналогичная проблема, когда я тестировал русскую/кириллическую клавиатуру. Я установил набор символов в 437 при тестировании акцентов и 1251 при тестировании русского языка. Когда я сохранил его, специальные символы даже изменились в коде файла Bat. Есть ли что-то особенное, что мне нужно сделать, чтобы отобразить специальные символы? Опять же, я только пытаюсь использовать их в команде echo.Как использовать символы с акцентом в команде echo в Batch?
1
A
ответ
1
Сохраните пакетный файл в кодировке UTF-8 без BOM подписи и использовать UTF-8 кодовую:
chcp 65001 >nul echo Päivää Привет Hello
Или сделать файл с сообщениями для каждого языка и сохранить его в кодировке Юникод кодирование (UTF-16LE):
en.hello=Hello .......other messages fi.hello=Päivää .......other messages
Затем загрузите переводы:
set LANGUAGE=fi ............... for /f "tokens=1* delims=." %%a in ('type "%~dp0messages.txt') do ( if "%%a"=="%LANGUAGE%" set "msg.%%b" ) ............... echo %msg.hello%
Теперь сообщения должны отображаться правильно по умолчанию, поскольку кодовая страница системной консоли обычно соответствует языку, установленному в региональных настройках.
Päivää
Вы можете сохранить эти сообщения в читаемом виде внутри файла пакетного сохранить как UTF-8 без BOM подписи и использовать встроенный VBScript код/Powershell добывать
messages.txt
в UTF16- LE:::msg.en.hello=Hello ::msg.fi.hello=Päivää powershell -c "Get-Content '%~f0' -encoding UTF8 | Select-String -Pattern '^::msg\.' | ForEach-Object {$_ -replace '::msg.',''} | Set-Content '%temp%\messages.txt' -encoding Unicode"
А затем загрузить его, как показано выше.
Смежные вопросы
- 1. Показать символы с акцентом
- 2. Как использовать вложенную переменную в команде echo
- 3. Как преобразовать символы с акцентом в Java
- 4. Как декодировать специальные символы (символы с акцентом) в facebook?
- 5. Как совместить символы с акцентом в preg_match()?
- 6. Как Вы Показать все символы Echo On В Batch
- 7. Batch - Как Echo %% Variable %%
- 8. SVN и символы с акцентом
- 9. mysql заменить символы с акцентом
- 10. Phpword и символы с акцентом
- 11. echo не работает в команде
- 12. Как хранить символы с акцентом в метаданных S3?
- 13. Как совместить символы с акцентом в регулярном выражении?
- 14. «И» вызывает перерыв в команде echo, как исправить?
- 15. Batch Command, вызывающий файл в команде
- 16. Batch - Печать Echo ВЫКЛЮЧЕН
- 17. Как передать символы с акцентом в REST API (вопросы Github)?
- 18. Batch echo specific line
- 19. Batch - echo off issue
- 20. Batch Echo Stuttering
- 21. Batch echo% var (%% ifno%)%
- 22. JavaFX KeyEvent и символы с акцентом
- 23. Как использовать «If» в BATCH
- 24. Powershell неправильно печатает символы с акцентом
- 25. string.search(), который игнорирует символы с акцентом?
- 26. xcode sql символы с акцентом изменен
- 27. Sinch sms api и символы с акцентом
- 28. Regex заменить на символы с акцентом - AutoHotKey
- 29. SqlBulkCopy не хранит символы с акцентом правильно
- 30. str_replace() не заменяет символы с акцентом
Когда я делал 'chcp 65001', он отображал строки правильно. Огромное спасибо. Это навсегда загломило меня. –