VSCode抱怨Ruby UTF-8文件包含无效的多字节字符(US-ASCII)

时间:2019-05-09 19:38:31

标签: ruby-on-rails ruby utf-8 visual-studio-code vscode-settings

使用Rails 5.2和Ruby 2.3(红宝石文件默认为UTF-8)。

如果我在终端中检查文件:

 file -I <filename>.rb

它显示UTF-8:

<filename>.rb: text/x-ruby; charset=utf-8

文件中还有一个带有德语变音符号的字符串,如屏幕截图所示。

enter image description here

在Ruby v2.0之前的版本中,您可以使用magic comments来告诉Ruby文件编码,但是显然该文件已经是UTF-8。

我要弄清楚的是两件事:

  1. UTF-8文件是如何在其中获取此US-ASCII字符的?

  2. 我该如何解决(因此VS-Code不会将其显示为不正确的)?我想知道是否与VS-Code中的扩展或设置有关?

作为对(1)的回答,我猜想它也许是从编码为US-ASCII(例如Word)的文件中复制并粘贴的?

但是,如果我删除字符并在Mac上使用OPT + u + u再次键入该字符,则VS Code仍然会抱怨。因此是问题2。

关于(2),我对此进行了检查:

echo LC_TYPE

,它为空。

因此,我在export LC_TYPE=$LANG中添加了~/.bash-profile并重新启动了VSCode,但这并不能解决(在VSCode中,集成终端LC_TYPE仍然为空)。 Ref

EDIT

没有必要回答问题1,因为如果我删除字符并重新输入,则会出现相同的错误。因此,我现在知道它如何进入文件并不重要,只需要知道产生警告的原因即可。

1 个答案:

答案 0 :(得分:1)

我认为问题出在短毛绒上。

"ruby.lint": {
       "reek": true,
       "rubocop": true,
       "ruby": {
         "unicode": true,
       },
       "fasterer": true,
       "debride": false,
       "ruby-lint": false
   },
对于ruby.lint, settings.json unicode 中的

默认情况下未打开,因此您需要手动进行操作。