使用Rails 5.2和Ruby 2.3(红宝石文件默认为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)的文件中复制并粘贴的?
但是,如果我删除字符并在Mac上使用OPT + u + u再次键入该字符,则VS Code仍然会抱怨。因此是问题2。
关于(2),我对此进行了检查:
echo LC_TYPE
,它为空。
因此,我在export LC_TYPE=$LANG
中添加了~/.bash-profile
并重新启动了VSCode,但这并不能解决(在VSCode中,集成终端LC_TYPE仍然为空)。 Ref
EDIT
没有必要回答问题1,因为如果我删除字符并重新输入,则会出现相同的错误。因此,我现在知道它如何进入文件并不重要,只需要知道产生警告的原因即可。
答案 0 :(得分:1)
我认为问题出在短毛绒上。
"ruby.lint": {
"reek": true,
"rubocop": true,
"ruby": {
"unicode": true,
},
"fasterer": true,
"debride": false,
"ruby-lint": false
},
对于ruby.lint, settings.json unicode 中的默认情况下未打开,因此您需要手动进行操作。