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

我想打开一个包含阿拉伯语文本的文本文件(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

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

我不知道这是如何在Ruby中完成的,而是Django(使用Python 3的新版本),它是:

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

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

Interesting Posts