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



我想打开一个包含阿拉伯文本(其编码为CP850)的文本文件(test.txt),然后将其内容打印到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

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

我不知道Ruby是如何做到这一点的,但Django(使用Python 3的较新版本),它是:

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

如果您使用的是Python2。如果是这样的话,升级到3是值得的,因为它是原生unicode,使用阿拉伯语做任何事情都更容易。

最新更新