Board logo

标题: [文本处理] 批处理如何实现在不改变txt文本原编码的情况下在首尾添加内容? [打印本页]

作者: iseeyou    时间: 2016-4-26 17:50     标题: 批处理如何实现在不改变txt文本原编码的情况下在首尾添加内容?

本帖最后由 pcl_test 于 2016-4-26 19:49 编辑

utf-8的txt被处理后变成了gb2312了,如何保持原文本格式呢?
  1. @echo off
  2. for /r %%a in (*.txt) do (
  3. (echo ----------------------------------------------------------
  4. echo ^开始字串符
  5. echo ----------------------------------------------------------
  6. echo.
  7. type "%%a"
  8. echo.
  9. echo.
  10. echo ----------------------------------------------------------
  11. echo 结束字串符
  12. echo ----------------------------------------------------------)>$
  13. move /y $ "%%a"
  14. )
复制代码

作者: happy886rr    时间: 2016-4-26 21:13

混编吧,单纯批处理很难对付utf-8。
作者: Nsqs    时间: 2016-4-26 21:17

回复 1# iseeyou


    把bat文件以ansi格式保存生成的文件也会是ansi
作者: codegay    时间: 2016-4-27 06:55

二进制的方式修改好像不涉及到编码问题。
作者: codegay    时间: 2016-4-27 07:33

处理ANSI文件,中文会乱码,因为python3字符串都是unicode编码
以下代码可以正常处理UTF-8编码的文件。
  1. """
  2. python3
  3. 2016年4月27日 07:27:01 codegay
  4. """
  5. import glob
  6. head=(
  7. """----------------------------------------------------------
  8. 开始字串符
  9. ----------------------------------------------------------
  10. """).encode()
  11. til=("""
  12. ----------------------------------------------------------
  13. 结束字串符
  14. ----------------------------------------------------------
  15. """).encode()
  16. for r in glob.glob("*mac.txt"):
  17.     with open(r,"rb+") as f:
  18.         txt=head+f.read()+til
  19.         f.seek(0)
  20.         f.write(txt)
复制代码

作者: iseeyou    时间: 2016-4-30 21:22

回复 5# codegay


    gb2312的无法处理,添加的字符乱码?可以改成gb2312也可以用的吗?




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