首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在批处理文件中输出中文单词?

如何在批处理文件中输出中文单词?
EN

Stack Overflow用户
提问于 2017-08-23 07:40:21
回答 2查看 1.5K关注 0票数 2

我使用下面的代码输出中文逐个批次的文件。

代码语言:javascript
复制
@echo off

echo  成功 
echo  失敗 
echo  開始 

但它显示了一个错误的词。

代码语言:javascript
复制
 ??
 憭望?
 ??

如何在批处理文件中输出中文单词?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-23 07:40:21

将批处理文件类型保存到ANSI文件扩展名:

  1. 使用windows文本编辑器
  2. 选择“保存为.”
  3. “编码”选择"ANSI“
  4. 按“保存”按钮。

执行bat文件,它将显示正确的单词。

代码语言:javascript
复制
 成功
 失敗
 開始

感谢eryksun的推荐:

更一般的情况下,您需要使用一个编辑器,该编辑器可以将批处理文件保存为UTF-8,而不需要BOM,例如notepad++。然后在顶部运行命令chcp.com 65001。UTF-8代码页(65001)在控制台中是错误的,因此您实际上应该只暂时这样做,即首先保存以前的代码页,并在将字符串读入环境变量之后恢复它。

票数 1
EN

Stack Overflow用户

发布于 2020-07-25 07:29:31

如果您将回显中文重定向为chcp 950chcp 936文件,则在记事本中打开该文件将显示符号。

但是,如果仍然在相同的代码页中读取该文件,则将在CMD中显示中文。

type <outfile>

中读取文件,不同的代码页,将产生其他字符的混合。如果用950回显,用936读取

如果在代码页65001中回显,则在记事本中查看文件将显示中文:

chcp 65001

代码页936 & 950将在记事本中显示符号,但仍将在CMD中显示中文(当type命令查看文件时)。

代码页65001将显示符号在CMD,但将显示中文输出文件打开时,在记事本。

例如:

代码语言:javascript
复制
echo off
chcp 936
echo 他的遺產無法估量,他是美國歷史最具影響力的告密者之一>test
type test
他的遺產無法估量,他是美國歷史最具影響力的告密者之一
chcp 950
Active code page: 950
type test
坻腔朡家楊嘛講ㄛ坻岆藝妢郔撿荌?薯腔豢躇氪眳珨

以上通过Win CMD将汉字保存/写入文件,不依赖(不涉及) Windows /记事本(++)到File -> Save As Unicode/UTF-8/BOMless。

在Win 10中测试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45833526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档