[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 求助:bat修改UTF-8编码XML文件里边某些内容后,保持其UTF-8编码格式不变

求助各位大神:感激不尽。

需用bat去修改一个xml文件里边某几个字符串,xml是UTF-8编码方式的, 修改完成后,保持xml的编码方式为UTF-8不变。

xml文件内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<--Define the Mechine information for host command.-->
<MachineInfo>
  <Brand>DD</Brand>
  <Type>DD Tpye</Type>
</MachineInfo>

1、需要修改其中的DD 和DD Tpye为任意字符串,包括中文。如把‘DD’修改为 ‘大神’,‘DD Type’修改为 ‘大神 牛逼‘,注意中间有空格符。
2、修改后,保持xml文件的UTF-8编码格式不变。

我修改后,xml文件的编码格式变为ANSI了,这样会有<?变为了乱码。

TOP

这个用 perl 比较合适,以 utf-8 编码保存为 test.pl:
  1. use utf8;
  2. use Encode;
  3. open IN,"a.xml";
  4. @ar=<IN>;
  5. close IN;
  6. $text = join '',@ar;
  7. encode "utf-8",$text;
  8. $text =~ s/DD/大神/;
  9. $text =~ s/DD Type/大神 牛逼/;
  10. open OUT,">:encoding(utf-8)","a.xml";
  11. print OUT $text;
  12. close OUT;
复制代码

TOP

回复 2# DAIC
非常感谢。

TOP

回复 3# CrLf

非常感谢。

TOP

返回列表