gpt4 book ai didi

即使使用 Magic Comment,Ruby UTF-8 编码在 Windows 中也不起作用

转载 作者:可可西里 更新时间:2023-11-01 09:56:15 24 4
gpt4 key购买 nike

我正在尝试运行一个包含以下内容的文件(cmd 提示符下的 ruby​​ anyfile.rb):

# encoding: utf-8
puts 'áá'

出现以下错误:

invalid multibyte char (UTF-8)

看来Ruby并没有看懂神奇的注释...

编辑:如果我删除“# encoding: utf-8”并像这样运行命令提示符:

ruby-E:UTF-8 encoding.rb

然后就可以了 - 有什么想法吗?

EDIT2:当我运行时:

ruby -e 'p [Encoding.default_external, Encoding.default_internal]'

我得到了[#Encoding:CP850, nil],也许我的 Encoding.default_external 是错误的?!

环境:

  • Windows XP(是的,我也讨厌 windows + ruby​​)
  • ruby 1.9.2p180 (2011-02-18) [i386-mingw32]

最佳答案

我相信这是“如果你听到蹄声,想想马,而不是斑马”的经典案例。

错误消息告诉您文件中的字节序列不是有效的 UTF-8 多字节序列。

绝对有可能

It seems that Ruby does not understand the magic comment...

正如你所说,直到现在还没有人注意到魔术评论实际上不起作用,因为你是人类历史上第一个真正尝试使用魔术评论的人。 (实际上,这不可能。如果 Ruby 理解魔术注释,它会提示无效的 ASCII 字符,因为 ASCII 是如果没有魔术注释,则使用默认编码。)

或者,您的文件中实际上一个无效的多字节 UTF-8 序列。

你觉得哪个更有可能?如果我是你,我会检查我的文件。

关于即使使用 Magic Comment,Ruby UTF-8 编码在 Windows 中也不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9432511/

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