Board logo

标题: [文本处理] 批处理如何ECHO中文字到一个UTF-8的文本里? [打印本页]

作者: ccstr    时间: 2012-2-15 04:48     标题: 批处理如何ECHO中文字到一个UTF-8的文本里?

一个带BOM的UTF-8编码的文本(编码格式已确定,不允许修改为其他格式),现在要在批处理里往里面追加一些中文字,用ECHO追加进去的中文字全变黑方块了。具体可见附件里的1.bat。
曾经试过用CHCP 65001的方式改变代码页然后再做追加的操作,但是CHCP之后批处理就被中断了,估计跟代码页被修改有关系。即使是手工执行CHCP之后的代码,追加出来的也是黑方块。
该如何往这个文本里追加中文字呢?
谢谢。
作者: plp626    时间: 2012-2-15 13:16

这类问题最好是用三方,

娱乐期间,可以参考此贴:http://www.bathome.net/thread-15524-1-1.html
作者: 523066680    时间: 2012-2-15 16:51

试了一下perl可以
保存脚本的时候保存为utf-8的形式
use utf8;
open WRITE,">>1.txt";
print WRITE "测试一下";
close WRITE;
作者: ccstr    时间: 2012-2-15 18:56

这类问题最好是用三方,

娱乐期间,可以参考此贴:
plp626 发表于 2012-2-15 13:16


谢谢。
作者: ccstr    时间: 2012-2-15 18:57

试了一下perl可以
保存脚本的时候保存为utf-8的形式
use utf8;
open WRITE,">>1.txt";
print WRITE "测 ...
523066680 发表于 2012-2-15 16:51


方法虽然简单,可是在批处理里用不了吖。
作者: find    时间: 2012-2-15 20:16

回复 5# ccstr


BAT无法直接处理UTF-8文件
可以考虑调用VBS进行编码转换
作者: Demon    时间: 2012-8-16 23:15

  1. copy 1.txt 2.txt
  2. chcp 437
  3. (
  4. echo.
  5. echo 通用类型/各种各样的类型
  6. ) >> 2.txt
  7. start 2.txt
复制代码
以utf-8编码(不带BOM)保存为1.bat
作者: kaze    时间: 2018-8-3 09:45

@echo off
REM 声明采用UTF-8编码
chcp 65001
echo test
echo 中文测试
pause

经过测试,这个最简单,韩文,全角字符都不是问题




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2