Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ruby中将字符串转换为UTF8_Ruby_File_Encoding_Utf 8_Dump - Fatal编程技术网

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

如何在Ruby中将字符串转换为UTF8,ruby,file,encoding,utf-8,dump,Ruby,File,Encoding,Utf 8,Dump,我正在写一个使用Hpricot的爬虫程序。它从某个网页下载字符串列表,然后我尝试将其写入该文件。编码有问题: "\xC3" from ASCII-8BIT to UTF-8 我有一些在网页上呈现并以这种方式打印的项目: Développement str.encoding返回UTF-8,因此force\u编码('UTF-8')没有帮助。如何将其转换为可读的UTF-8?您的字符串似乎编码错误: "Développement".encode("iso-8859-1").force_encod

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

"\xC3" from ASCII-8BIT to UTF-8
我有一些在网页上呈现并以这种方式打印的项目:

Développement

str.encoding
返回
UTF-8
,因此
force\u编码('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') #-> Ã
如果
Ã
没有意义,请尝试另一种编码。

“描述了另一种代码更少的好方法:

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

HPICCOOT不再维持,考虑使用NokGoiRi。另外,您可能应该提到原始网页的编码是什么。它适用于大多数情况。但有时:
U+201C从CIDEM/ACC1Ã中的UTF-8到ISO-8859-1“
U+20AC从花旗的UTF-8到ISO-8859-1”™s Sustainable Development Investments(可持续发展投资)
没有。此外,一些名称已转换但错误,我无法将其放入包含
不完整多字节字符的数据库中。抱歉,这不是修复方法。在将字符串读入应用程序时,您应该通过设置/检测正确的编码来修复此问题。存在also使用
编码::UTF_8
而不是为
“UTF-8”
字符串文字(或任何其他编码字符串)使用更多内存的选项。适用于使用Wicked PDF gem创建的PDF