gpt4 book ai didi

ruby - UTF-8 的 gsub 编码问题

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

我正在尝试从数据库迁移中的一些用户名创建一个 slug。

nick = nick.gsub('á','a')

我真的很想也把 éíóúñ 改成 eioun

这样做,不行,我会得到:

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

但是,无论我做什么,例如通过添加 force_encoding 方法,我总是会遇到编码错误,例如:

invalid byte sequence in UTF-8 (ArgumentError)

"\xF3" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)

incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)

当我有一个 gsub 来改变那些人声或西类牙语 ñ 字母时,这就发生了。

我的文件中还有一个 encoding: utf-8 行,数据来自 UTF-8 数据库。但似乎没有任何帮助。

我已经看到一些关于 SO 的问题,但我尝试做的任何事情都无法解决。

顺便说一下,这与 rails 无关。

最佳答案

我终于使用了 Rails ActiveSupport 的音译:

require 'active_support/all'
v = ActiveSupport::Inflector.transliterate v.downcase
v.gsub(/[^a-z1-9]+/, '-').chomp('-')

工作正常。

关于ruby - UTF-8 的 gsub 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17544611/

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