找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26763|回复: 4

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

[复制链接]
发表于 2014-8-22 12:43:24 | 显示全部楼层 |阅读模式
求助各位大神:感激不尽。

需用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了,这样会有<?变为了乱码。
发表于 2014-8-22 13:18:51 | 显示全部楼层
发表于 2014-8-22 16:36:04 | 显示全部楼层
这个用 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;
复制代码
 楼主| 发表于 2014-8-24 19:04:40 | 显示全部楼层
回复 2# DAIC
非常感谢。
 楼主| 发表于 2014-8-24 19:05:08 | 显示全部楼层
回复 3# CrLf

非常感谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 05:27 , Processed in 0.030097 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表