使用Ruby(IRB)打印CP850编码的字符串

时间:2016-04-06 09:59:08

标签: ruby unicode encoding io arabic

我想打开一个包含阿拉伯语文本的文本文件(test.txt)(其编码为CP850),然后将其内容打印到STDOUT:

# coding : CP850
STDOUT.set_encoding(Encoding::CP850); # not sure if it's necessary
open('G:/test.txt',?r){|f|
    f.read.each_char{|c| print c};
    # or puts f.read;
}
gets

但它不打印阿拉伯字符,输出是一些符号和随机字符。 使用Ruby 2.2.3

1 个答案:

答案 0 :(得分:0)

将文件的编码更改为utf-8。

我不知道如何在Ruby中实现这一点,但Django(使用Python 3的新版本),它是:

open('filename.txt', w, 'utf-8)

如果您正在使用Python 2,那将会稍微困难一些。如果是这样的话,值得升级到3只是因为它的本地unicode并且使用阿拉伯语做任何事情都容易得多。