Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在Ruby 2.0中将UTF-8转换为ISO-8859-1?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果您没有在它们之间进行转换,则(日期)时间和字符串编码的时区是没有问题的.在 Ruby 1.9和2.0中,编码似乎是较旧的Ruby版本的新时区,它们只引起麻烦. Iconv已被本机编码功能取代.如何从标准 UTF-8转换为 ISO-8859-1,例如在Windows系统中使用?在Ruby 2.0控制台中 encode function不起作用,然它应该能够通过编码(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).

解决方法

encode方法确实有效.

让我们用U 00FC(ü)创建一个字符串:

uuml_utf8 = "\u00FC"       #=> "ü"

Ruby以UTF-8编码此字符串:

uuml_utf8.encoding         #=> #<Encoding:UTF-8>

在UTF-8中,ü表示为195 188(十进制):

uuml_utf8.bytes            #=> [195,188]

现在让我们将字符串转换为ISO-8859-1:

uuml_laTin1 = uuml_utf8.encode("ISO-8859-1")

uuml_laTin1.encoding       #=> #<Encoding:ISO-8859-1>

在ISO-8859-1中,ü表示为252(十进制):

uuml_laTin1.bytes          #=> [252]

在UTF-8中,252是无效序列.这就是你的终端/控制台显示替换字符“ ”(U FFFD)或根本没有字符的原因.

为了显示ISO-8859-1编码字符,您还必须将终端/控制台切换为该编码.

大佬总结

以上是大佬教程为你收集整理的如何在Ruby 2.0中将UTF-8转换为ISO-8859-1?全部内容,希望文章能够帮你解决如何在Ruby 2.0中将UTF-8转换为ISO-8859-1?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。