使用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并且使用阿拉伯语做任何事情都容易得多。