如何更正Ruby中不正确的编码字符串?
例如,我们需要第三方库来解析和获取文件元数据。但是该方法将通过utf-8对所有元数据进行解码,即使元数据采用另一种编码,它也会返回一个utf-8编码的字符串。lib不支持任何方法返回原始字符串数据,以便我们正确编码。现在我们知道文件的元数据原始编码是,例如,GBK。有没有办法将utf-8编码字符串更正为GBK?有。您应该了解ruby 1.9在string类上的如何更正Ruby中不正确的编码字符串?,ruby,string,character-encoding,Ruby,String,Character Encoding,例如,我们需要第三方库来解析和获取文件元数据。但是该方法将通过utf-8对所有元数据进行解码,即使元数据采用另一种编码,它也会返回一个utf-8编码的字符串。lib不支持任何方法返回原始字符串数据,以便我们正确编码。现在我们知道文件的元数据原始编码是,例如,GBK。有没有办法将utf-8编码字符串更正为GBK?有。您应该了解ruby 1.9在string类上的force_编码和encode方法。我建议在ruby中操作之前,尽快将所有内容转换为UTF-8。不,没有,将UTF-8中没有的内容解码为U
force_编码
和encode
方法。我建议在ruby中操作之前,尽快将所有内容转换为UTF-8。不,没有,将UTF-8中没有的内容解码为UTF-8是有损的。这意味着,当您从库中获取字符串时,您已经丢失了信息,无法将原始数据表示为GBK。更改库的工作方式,或将文件元数据更改为UTF-8。第三方库不支持任何方法返回原始字符串数据以供我们正确编码。我的意思是,如果必须使用此第三方库,我没有机会尽快将其转换为UTF-8。更改库有点困难。如果文件格式和库都是封闭源代码怎么办?@y.s.文件格式和库都是封闭源代码,但彼此不兼容?向提供商提交错误报告是您唯一的选择