新手问题 如何将 File write 的文件格式保存为 ansi 编码呢

ted · 2014年09月11日 · 最后由 tylerlong 回复于 2014年09月11日 · 3860 次阅读

有个小脚本,从 excel 中逐行读出数据,将每行按照固定格式写为 ini 文件,很快完成了,但被告知说保存好的文件是 utf-8 编码的,需要 ansi 编码(我用的 osx、ruby 2.1),我通过 Google 尝试了这两种方法:

  1. 直接在写入内容的时候加入编码参数 fh = File.new("target.ini", "w:LATIN1")

结果失败warning: Unsupported encoding LATIN1 ignored

  1. 用 iconv 对写入的内容先进行转换 ansi_input = Iconv.iconv("LATIN1", "UTF-8", input).join

再次报错(写入的内容中有中文)`iconv': "参数配"... (Iconv::IllegalSequence)

从你的代码中哪里看出来 ansi 编码呢?你说的是 ascii 编码吗?如果文本中包含 ascii 之外的字符,那就没办法保存为 ascii 编码。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号