gpt4 book ai didi

ruby - 清理传入字符串的标准方法?

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:45 24 4
gpt4 key购买 nike

我集成了几个外部服务,通过 http 下载文件。我发现在我的系统中使用它们之前,我必须转换/清理文件的名称。所以我在代码的不同部分有这样的东西:

name = name.encode('UTF-8', 'ASCII-8BIT', invalid: :replace, undef: :replace, replace: '')
name = name.encode('UTF-8', 'ISO-8859-1', invalid: :replace, undef: :replace, replace: '')

在每种情况下,我都必须询问服务我应该期待什么编码。

这是解决这个问题的唯一方法,还是有某种更标准和通用的方法来清理传入的字符串?

最佳答案

在 Ruby 1.9.x 中,有一个外部编码和一个内部编码,它们都默认为全局编码。外部文件被认为是配置的外部编码,并自动转换为内部编码。您可以通过 Encoding.default_externalEncoding.default_internal 全局设置这些编码。您可以在每个文件的基础上将它们指定为 open 方法的参数,如下例所示:

File.open('/path/to/some/file', 'r', external_encoding: 'US-ASCII', internal_encoding: 'UTF-8')

请注意,您也可以单独指定每一个。

参见 this blog post了解更多信息。

关于ruby - 清理传入字符串的标准方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13091130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com