Board logo

标题: [文本处理] [已解决]批处理生成文本后的编码问题 [打印本页]

作者: lonron    时间: 2023-1-22 01:58     标题: [已解决]批处理生成文本后的编码问题

各位老师,新年好~

本人在写cmd命令的时候遇到一个问题无法得到有效解决,恳请论坛老师们相助:
  源脚本因为有中文路径所以采用了ANSI编码格式来保存,在这个脚本中需要执行生成一个带有中文的但编码一定要是 UTF-16 LE 的 .ini 配置文件,且不会出现乱码。
类似于我们windows系统中的 desktop.ini 这个文件这种。不知道用cmd能不能实现。

===============================================

最终采取:如何把文件夹下*.reg的ANSI编码格式文件,转换为UTF-16LE编码格式?
这篇帖子3楼老师的PowerShell方案。本帖自行解决,至此办结。谢谢各位热心回复的老师们,学习了很多!

作者: 谐夜落风    时间: 2023-1-22 13:59

执行前先弄个chcp 65001,不过好像是UTF-8
作者: xp3000    时间: 2023-1-22 15:07

chcp 1200
另一个
chcp 1201
看看哪个是,
恢复用
chcp 936
作者: czjt1234    时间: 2023-1-22 15:45

  1. file = "1.txt"
  2. Set oStream = CreateObject("ADODB.Stream")
  3. oStream.Type = 2    'adTypeText
  4. oStream.Mode = 3    'adModeReadWrite
  5. oStream.Charset = "UTF-8"    '原编码
  6. oStream.Open()
  7. oStream.LoadFromFile file
  8. s = oStream.ReadText()
  9. oStream.Close()
  10. oStream.Charset = "UTF-16"     '目标编码
  11. oStream.Open()
  12. oStream.WriteText s
  13. oStream.SaveToFile file, 2    'adSaveCreateOverWrite
  14. oStream.Close()
复制代码

批护理开头先弄个chcp 65001
批处理最后用这个vbs转换文件编码
作者: lonron    时间: 2023-1-22 16:07

回复 3# xp3000


    提示 无效代码页,其实发帖之前我搜到过这个范例,但是不知道为什么我这边用不了。
作者: lonron    时间: 2023-1-22 17:54

最终采取 如何把文件夹下*.reg的ANSI编码格式文件,转换为UTF-16LE编码格式?
这篇帖子3楼老师的PowerShell方案。本帖自行解决,至此办结。谢谢各位热心回复的老师们,学习了很多!




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