簡體   English   中英

為什么Windows命令提示符與批處理文件的編碼有區別?

[英]Why is there a difference between the encoding of the Windows Command Prompt vs. a batch file?

例如,假設我有一個名為'test.cmd'的批處理文件,它只包含:

echo %1

我可以使用'test.cmd some¬arg'直接從命令提示符調用它,結果是打印字符串'some¬arg'

但是,如果我將相同的調用放在第二個批處理文件中,為了參數而調用'tester.cmd' ,並且我從命令提示符調用它,結果是打印字符串'some%arg'

是什么擾亂了編碼,我該如何解決它呢? 我相信我之前已經解決了這個問題,但我不記得是怎么回事......

謝謝!

這是因為您的批處理文件編碼在與cmd.exe當前不同的代碼頁中。

在西部默認配置中,cmd.exe在CP850中啟動,但文本編輯器通常在CP1252中工作(通常錯誤地稱為Latin-1或ISO-8859-1)。

字符“¬”和“¼”在這兩個代碼頁“BC”中共享相同的字符代碼。

解決方案很簡單。 在代碼頁850中對批處理文件進行編碼,或者通過發出chcp 1252將cmd.exe切換到代碼頁chcp 1252

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM