如何在ruby 1.8.7中编写“string”.encode(“us-ascii”)?

时间:2013-01-19 03:37:18

标签: ruby ruby-1.9.3 ruby-1.8.7

我正在尝试使用“gmail_xoauth”gem,不幸的是,gem使用encode("us-ascii")表示字符串,这仅适用于Ruby 1.9.3。

我不熟悉Ruby 1.9.3中的encode所以我想知道"string".encode("us-ascii")是什么,我怎么写它为1.8.7?

1 个答案:

答案 0 :(得分:3)

string.encode(“us-ascii”)方法将字符串中的所有字符转换为美国ASCII 7位值。

US-ASCII基本上是纯文本,总共128个字符。在20世纪70年代到90年代,这种编码在美国计算机上很常见。

您现在看到它的原因可能是因为您正在使用电子邮件。电子邮件协议需要对字符串进行US-ASCII编码。

Ruby 1.8.7没有内置的字符串编码方法,因为Ruby 1.8.7将字符串存储为字节,而不是编码字符。

要在Ruby 1.8.7中进行转换,请参阅Iconv库:

http://ruby-doc.org/stdlib-1.8.7/libdoc/iconv/rdoc/Iconv.html

另请参阅此答案中的转换iconv代码示例:

String.force_encoding() in Ruby 1.8.7 (or Rails 2.x)