【发布时间】:2013-01-19 03:37:18
【问题描述】:
我正在尝试使用“gmail_xoauth”gem,不幸的是,gem 将encode("us-ascii") 用于字符串,这仅适用于 Ruby 1.9.3。
我不熟悉 Ruby 1.9.3 中的 encode,所以我想知道 "string".encode("us-ascii") 是什么以及如何为 1.8.7 编写它?
【问题讨论】:
标签: 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 编写它?
【问题讨论】:
标签: ruby ruby-1.9.3 ruby-1.8.7
string.encode("us-ascii") 方法将字符串中的所有字符转换为美国 ASCII 7 位值。
US-ASCII 本质上是总共 128 个字符的纯文本。这种编码在 1970 年代至 1990 年代的美国计算机上很常见。
您现在看到它的原因可能是因为您使用的是电子邮件。电子邮件协议要求对字符串进行 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 代码示例:
【讨论】: