gpt4 book ai didi

ruby - 将 UTF-8 字符转换为正确的 ASCII 字符

转载 作者:数据小太阳 更新时间:2023-10-29 08:20:26 25 4
gpt4 key购买 nike

我有字符串 "V\355ctor"(我认为那是 Víctor)。有没有办法将其转换为 ASCII,其中 í 将被 ASCII i 替换?

我已经尝试过 Iconv 但没有成功。(我只得到 Iconv::IllegalSequence: "\355ctor")

另外,Ruby 1.8.7 和 Ruby 2.0 有区别吗?

编辑:Iconv.iconv('UTF-8//IGNORE', 'UTF-8', "V\355ctor") 这似乎有效,但结果是 Vctor 而不是 维克多

最佳答案

我知道有两个选择。

  1. 音译 I18n gem 。

    $ irb
    1.9.3-p448 :001 > string = "Víctor"
    => "Víctor"
    1.9.3-p448 :002 > require 'i18n'
    => true
    1.9.3-p448 :003 > I18n.transliterate(string)
    => "Victor"
  2. 来自 stringex gem 的 Unidecoder .

    Stringex::Unidecoder..decode(string)

更新:

在“V\355ctor”上运行 Unidecoder 时,出现以下错误:

Encoding::CompatibilityError: incompatible encoding regexp match (UTF-8 regexp with IBM437 string)

嗯,也许你想先从 IBM437 翻译过来:

string.force_encoding('IBM437').encode('UTF-8')

这可能会帮助您走得更远。请注意,自动检测到的编码可能不正确,如果您确切知道编码是什么,这将使一切变得容易得多。

关于ruby - 将 UTF-8 字符转换为正确的 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19914563/

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