VSCode 抱怨 Ruby UTF-8 文件具有无效的多字节字符 (US-ASCII)
VSCode complains a Ruby UTF-8 file has invalid multibyte char (US-ASCII)
使用 Rails 5.2 和 Ruby 2.3(ruby 文件默认为 UTF-8)。
如果我在终端中检查文件:
file -I <filename>.rb
它显示 UTF-8:
<filename>.rb: text/x-ruby; charset=utf-8
然而在文件中有一个带有德语变音字符的字符串,如您在屏幕截图中所见。
在 Ruby 的 v2.0 之前你可以使用 magic comments 来告诉 Ruby 文件编码,但显然这个文件已经是 UTF-8。
我想弄清楚的是两件事:
UTF-8 文件是如何在其中获取这个 US-ASCII 字符的?
我该如何修复它(这样 VS-Code 就不会显示为不正确)?我想知道是否与 VS-Code 中的扩展或设置有关?
作为对 (1) 的回答,我猜它可能是从一个编码为 US-ASCII(如 Word)的文件中复制和粘贴的?
但是,如果我删除字符并使用 OPT + u + u 在我的 Mac 上再次键入它,那么 VS Code 仍然会抱怨。因此问题 2.
关于 (2) 我检查了这个:
echo LC_TYPE
它是空的。
所以我将export LC_TYPE=$LANG
添加到我的~/.bash-profile
并重新启动VSCode,但这并没有解决它(在VSCode集成终端LC_TYPE仍然为空)。 Ref
编辑
没有必要回答问题1,因为如果我删除字符并重新输入,同样的错误出现。所以我现在知道它是如何进入文件的并不重要,只需要知道是什么产生了警告。
我认为问题出在 linter 中。
"ruby.lint": {
"reek": true,
"rubocop": true,
"ruby": {
"unicode": true,
},
"fasterer": true,
"debride": false,
"ruby-lint": false
},
in settings.json unicode 默认情况下 未打开 ruby.lint 所以你需要手动完成。
使用 Rails 5.2 和 Ruby 2.3(ruby 文件默认为 UTF-8)。
如果我在终端中检查文件:
file -I <filename>.rb
它显示 UTF-8:
<filename>.rb: text/x-ruby; charset=utf-8
然而在文件中有一个带有德语变音字符的字符串,如您在屏幕截图中所见。
在 Ruby 的 v2.0 之前你可以使用 magic comments 来告诉 Ruby 文件编码,但显然这个文件已经是 UTF-8。
我想弄清楚的是两件事:
UTF-8 文件是如何在其中获取这个 US-ASCII 字符的?
我该如何修复它(这样 VS-Code 就不会显示为不正确)?我想知道是否与 VS-Code 中的扩展或设置有关?
作为对 (1) 的回答,我猜它可能是从一个编码为 US-ASCII(如 Word)的文件中复制和粘贴的?
但是,如果我删除字符并使用 OPT + u + u 在我的 Mac 上再次键入它,那么 VS Code 仍然会抱怨。因此问题 2.
关于 (2) 我检查了这个:
echo LC_TYPE
它是空的。
所以我将export LC_TYPE=$LANG
添加到我的~/.bash-profile
并重新启动VSCode,但这并没有解决它(在VSCode集成终端LC_TYPE仍然为空)。 Ref
编辑
没有必要回答问题1,因为如果我删除字符并重新输入,同样的错误出现。所以我现在知道它是如何进入文件的并不重要,只需要知道是什么产生了警告。
我认为问题出在 linter 中。
"ruby.lint": {
"reek": true,
"rubocop": true,
"ruby": {
"unicode": true,
},
"fasterer": true,
"debride": false,
"ruby-lint": false
},
in settings.json unicode 默认情况下 未打开 ruby.lint 所以你需要手动完成。