繁体   English   中英

如何在Ruby中将字符串转换为UTF8

[英]How to convert a string to UTF8 in Ruby

我正在写一个使用Hpricot的爬虫。 它从某些网页下载字符串列表,然后尝试将其写入文件。 编码有问题:

"\xC3" from ASCII-8BIT to UTF-8

我有呈现在网页上并以这种方式打印的项目:

Développement

str.encoding返回UTF-8 ,所以force_encoding('UTF-8')没有帮助。 如何将其转换为可读的UTF-8?

您的字符串似乎编码方式错误:

"Développement".encode("iso-8859-1").force_encoding("utf-8")
#=> "Développement"

您的字符串似乎认为它是UTF-8,但实际上,它是另外一些东西,可能是ISO-8859-1。

首先定义(强制)正确的编码,然后将其转换为UTF-8。

在您的示例中:

puts "Développement".encode('iso-8859-1').encode('utf-8')

一种替代方法是:

puts "\xC3".force_encoding('iso-8859-1').encode('utf-8') #-> Ã

如果Ã没有意义,请尝试其他编码。

ruby 1.9:UTF-8中的无效字节序列 ”描述了另一种使用较少代码的好的方法:

file_contents.encode!('UTF-16', 'UTF-8')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM