(日期)时区和字符串编码不会成为问题,如果你不需要在它们之间进行转换。在 Ruby 1.9 和 2.0 中,编码似乎是旧版 Ruby 的新时区,它们只会带来麻烦。Iconv 已被本地编码函数取代。例如,如何从标准的 UTF-8 转换为 ISO-8859-1,以便在 Windows 系统中使用?在 Ruby 2.0 控制台中,encode function 不起作用,尽管它应该能够通过
encode(dst_encoding, src_encoding) → str
将源编码转换为目标编码?>> "ABC äöüÄÖÜ".encoding
=> #<Encoding:UTF-8>
>> "ABC äöüÄÖÜ".encode("UTF-8").encode("ISO-8859-1")
=> "ABC \xE4\xF6\xFC\xC4\xD6\xDC"
>> "ABC äöüÄÖÜ".encode("ISO-8859-1","UTF-8")
=> "ABC \xE4\xF6\xFC\xC4\xD6\xDC"
我正在linux系统上使用Ruby 2.0.0(修订版41674)。
"ABC äöüÄÖÜ".encode("ISO-8859-1","UTF-8")
将 UTF-8 转换为 Latin-1 并返回 Latin-1 字符串,"ABC äöüÄÖÜ"
已经是 UTF-8,因此encode
的第二个参数是无关紧要的。你期望"ABC äöüÄÖÜ".encode("ISO-8859-1","UTF-8")
做什么,以及你的期望与实际发生的有何不同? - mu is too short