gpt4 book ai didi

ruby-on-rails - 如何在ruby中将阿拉伯数字转换为数字

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

Params 还包括阿拉伯数字,我想将其转换为数字:-

"lexus/yr_٢٠٠١_٢٠٠٦"

我试过这个

params[:query].tr!('٠١٢٣٤٥٦٧٨٩','0123456789').delete!(" ")

但是报错

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

我愿意

params[:query].force_encoding('utf-8').encode.tr!('٠١٢٣٤٥٦٧٨٩','0123456789').delete!(" ")

我如何转换它?

最佳答案

如果您已强制执行 UTF-8 编码,那么这应该可以正常工作。

str = "lexus/yr_٢٠٠١_٢٠٠٦"

str.tr('٠١٢٣٤٥٦٧٨٩','0123456789')

返回 "lexus/yr_2001_2006"

ASCII 8 位并不是真正的编码。它是二进制数据,而不是基于文本的数据。将 ASCII 8 位转码为 UTF-8 不是有意义的操作。我建议确保通过文本字段传递 query 参数的请求使用有效的字符串编码,如果您可以控制的话。您可以在 ruby​​ 中使用 String#valid_encoding? 方法来检查您收到的是正确编码的字符串。

关于ruby-on-rails - 如何在ruby中将阿拉伯数字转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46450739/

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