使用 Ruby 将 UTF8 转换为 ANSI
我有一个 Ruby 脚本,可以在 Linux 计算机中远程生成 UTF8 CSV 文件,然后通过 SFTP 将文件传输到 Windows 计算机。
然后,我需要使用 Excel 打开此文件,但 Excel 无法获取 UTF8,因此我始终需要在能够将 UTF8 转换为 ANSI 的文本编辑器中打开该文件。
我很乐意使用 Ruby 以编程方式执行此操作,并避免手动转换步骤。 最简单的方法是什么?
PS:我尝试使用 iconv 但没有成功。
I have a Ruby script that generates a UTF8 CSV file remotely in a Linux machine and then transfers the file to a Windows machine thru SFTP.
I then need to open this file with Excel, but Excel doesn't get UTF8, so I always need to open the file in a text editor that has the capability to convert UTF8 to ANSI.
I would love to do this programmatically using Ruby and avoid the manual conversion step. What's the easiest way to do it?
PS: I tried using iconv but had no success.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
假设您的文本确实适合 ascii 字符集。
assuming that your text really does fit in the ascii character set.
我终于设法使用 iconv 做到了,我只是搞乱了参数。 所以,这就是你要做的:
就是这样!
I finally managed to do it using iconv, I was just messing up the parameters. So, this is how you do it:
That's it!
我在尝试从服务器上用户生成的内容生成 CSV 文件时遇到了类似的问题。 我发现 unidecoder gem 可以很好地将 unicode 字符转写为 ascii。
示例:
对于我们的简单用例,这效果很好。
Pivotal Labs 有一篇关于 unicode 音译为 ascii 的精彩博客文章,讨论了更详细地说。
I had a similar issue trying to generate CSV files from user-generated content on the server. I found the unidecoder gem which does a nice job of transliterating unicode characters into ascii.
Example:
For our simple use case, this worked well.
Pivotal Labs has a great blog post on unicode transliteration to ascii discussing this in more detail.
从 ruby 1.9 开始,有一种更简单的方法:
为了避免无效(非 ASCII)字符的问题,您可以忽略这些问题:
Since ruby 1.9 there is an easier way:
To avoid problems with invalid (non-ASCII) characters you can ignore the problems: