如何更正Ruby中不正确的编码字符串?

时间:2013-01-11 08:16:25

标签: ruby string character-encoding

例如,我们需要第三方lib来解析并获取文件元数据。但是该方法将通过utf-8解码所有元数据,即使元数据以另一种编码进行编码,它也会返回一个utf-8编码的字符串。并且lib不支持任何方法来返回原始字符串数据以供我们正确编码。现在我们知道文件的元数据的原始编码是,例如,GBK。有没有办法将utf-8编码的字符串更正为GBK?

2 个答案:

答案 0 :(得分:1)

是。您应该了解字符串类中的ruby 1.9的force_encodingencode方法。我建议在ruby中操作它之前尽快将所有内容转换为UTF-8。

答案 1 :(得分:1)

没有,解码的东西,因为UTF-8不是UTF-8是有损的。这意味着,当您从lib获取字符串时,您丢失了信息,并且无法将原始数据表示为GBK。更改lib的工作方式,或将文件元数据更改为UTF-8。