DOS 中非典型字符的混乱
命令行程序输出文件路径列表。我将输出传输到另一个程序以进行进一步处理。一切正常,直到遇到包含“奇怪”字符(ó、î、ä 等)的文件路径。
问题的原因似乎是下面描述的行为:
测试 1
当我在 cmd.exe 中执行此命令时,
C:\temp> echo ó > o.txt
创建的文件的内容将是字符 ¡
测试 2
我创建了一个输入文件 o_src.txt(使用我的文本编辑器),其中包含字符 ó。
该命令
C:\temp> type o_src.txt
将在cmd.exe中打印该字符 ¾
如果我执行
C:\temp>type o.txt
(测试 1 中的 o.txt),结果为 ó
测试 3
执行该命令后
C:\temp> type o_src.txt > o_dst.txt
,o_src.txt 和 o_dst.txt 的内容相同。
这是如何运作的?
ó 的 ASCII 代码:F3 / 243
Ⅲ的ASCII码:A2 / 162
3/4 的 ASCII 代码:BE / 190
A command-line program outputs a list of file paths. I pipe the output to another program to do further processing. It all works fine until a file path is encountered that contains a "strange" character (ó, î, ä, etc.).
The cause of the problem seems to be the behavior described next:
Test 1
When I execute this command in cmd.exe,
C:\temp> echo ó > o.txt
the contents of the created file will be the character ¢.
Test 2
I created an input file, o_src.txt, (with my text editor) that contains the character ó.
The command
C:\temp> type o_src.txt
will print this character in cmd.exe
¾
If I execute
C:\temp>type o.txt
(o.txt from TEST 1) the result is ó
Test 3
After execution of the command
C:\temp> type o_src.txt > o_dst.txt
then the contents of o_src.txt and o_dst.txt are the same.
How does this work?
ASCII code of ó: F3 / 243
ASCII code of ¢: A2 / 162
ASCII code of ¾: BE / 190
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信您需要使用
CHCP
更改代码页。查看这些问题以获取更多信息。如果调用 chcp,则不会执行批处理脚本
< a href="https://stackoverflow.com/questions/1259084/what-encoding-code-page-is-cmd-exe-using">cmd.exe 使用什么编码/代码页
Windows 命令行中的 Unicode 字符 - 如何使用?
I believe you need to change the code page using
CHCP
. Look at these questions for more info.Batch script is not executed if chcp was called
What encoding/code page is cmd.exe using
Unicode characters in Windows command line - how?