gpt4 book ai didi

Ruby 1.9.2 字符编码 : invalid multibyte character:/?/

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

我试图理解为什么这段代码在 Ruby 1.9.2 中不起作用我还试图弄清楚应该如何更改它才能使其工作。这是片段:

ruby-1.9.2-p290 :009 > str = "hello world!"
=> "hello world!"
ruby-1.9.2-p290 :010 > str.gsub("\223","")
RegexpError: invalid multibyte character: /?/
from (irb):10:in `gsub'

最佳答案

您的 ruby​​ 处于 UTF-8 模式,但 "\223" 不是有效的 UTF-8 字符串。当你在 UTF-8 中时,任何设置了第八位的字节都意味着你在一个多字节字符中,你需要继续读取更多字节以获得完整的字符;这意味着 "\223" 只是 UTF-8 编码字符的部分,因此是您的错误。

0223 和 0224(十进制的 147 和 148)是 Windows-1252 中的“智能”引号字符集,但 Windows-1252 不是 UTF-8。在 UTF-8 中,您需要 "\u201c""\u201d" 作为引号:

>> puts "\u201c"

>> puts "\u201d"

因此,如果您要删除引号,那么您可能需要以下之一:

str.gsub("\u201c", "").gsub("\u201d", "")
str.gsub(/[\u201c\u201d]/, '')

关于Ruby 1.9.2 字符编码 : invalid multibyte character:/?/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8220712/

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