你好堆棧溢出的人。我和我的朋友正在用Batch/.bat編程語言製作遊戲。直到這一點,我們沒有任何問題,我們無法修復。但是,當我開始將它翻譯成西班牙語版本時,我們遇到了問題。當我試圖讓這個程序用西班牙語重音(例如Á,É)時,它不起作用。我建立了一個測試頁面,其程序回顯爲"áéíóú"
,但它出來了其他內容,我現在無法複製和粘貼。當我測試俄羅斯/西里爾鍵盤時,遇到了類似的問題。在測試俄語時,我將字符集設置爲437,測試口音時設置爲1251。當我保存它時,甚至在Bat文件代碼中更改了特殊字符。我需要做些什麼才能讓特殊字符出現?同樣,我只是試圖在echo命令中使用它們。如何在批處理中的echo命令中使用重音字符?
1
A
回答
1
保存在UTF-8 批處理文件沒有BOM簽名並使用UTF-8代碼頁:
chcp 65001 >nul echo Päivää Привет Hello
或做與每種語言的消息文件和將它保存爲Unicode編碼(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. echo命令如何在批處理編程中工作
- 2. Echo命令在批處理腳本中不起作用
- 3. 使用批處理命令
- 4. 如何在選擇命令中使用特殊字符 - 批處理文件
- 5. 如何在使用批處理命令的for循環中使用通配符
- 6. 批處理文件中的Set命令中使用通配符
- 7. 如何在批處理文件中重複%random%命令?
- 8. 通批處理文件ECHO到PUSHD命令提示符下命令
- 9. 在命令提示符(批處理)中使用Taskkill
- 10. 如何在批處理文件中使用start命令?
- 11. 如何在批處理中使用adb shell查找命令
- 12. 如何在批處理文件FOR命令中使用PowerShell?
- 13. PHP:Windows命令行中的重音字符
- 14. 將批處理文件echo命令重定向到TextBox掛在Dispatcher.Invoke調用
- 15. 如何使用PowerShell中的參數運行批處理命令
- 16. 在jenkins中運行批處理命令
- 17. 在批處理文件中的echo語句中使用參數
- 18. 使用批處理文件命令替換字符串
- 19. cmd中的批處理命令與批處理文件
- 20. 如何在批處理文件中查找出現字符串輸出命令
- 21. 如何使用命令提示符中的批處理文件中的命令添加條件?
- 22. 批處理文件中的命令行?
- 23. 批處理文件中的Reg命令
- 24. 如何使用批處理文件將批處理文件命令追加到字符串(文件名)
- 25. 在Windows批處理文件中使用PowerShell命令的輸出
- 26. 在批處理中使用帶有IF條件的CALL命令
- 27. 在批處理文件中使用scrapy抓取命令時繼續批處理腳本命令
- 28. 使用批處理文件SHIFT命令
- 29. 使用Windows批處理命令
- 30. 批處理文件ECHO後PUSHD命令不工作
當我做了'chcp 65001'時,它正確顯示了行。非常感謝。這一直讓我永遠難忘。 –