打印具有红宝石(IRB)一个CP850编码的字符串(Printing a CP850 encoded

2019-11-04 04:28发布

我想打开包含阿拉伯语文本(它的编码是CP850),然后打印其内容输出到标准输出的文本文件(test.txt的):

# 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

Answer 1:

该文件的编码更改为UTF-8。

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

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

如果你使用的是Python 2它会稍微困难一些。 如果是这样,这是值得升级到3只是因为它是原生的Unicode,使做什么用阿拉伯数字轻松了许多。



文章来源: Printing a CP850 encoded string with Ruby (IRB)