Использование Rails 5.2 и Ruby 2.3 (по умолчанию файлы ruby имеют формат UTF-8).
Если я проверю файл в терминале:
file -I <filename>.rb
показывает UTF-8:
<filename>.rb: text/x-ruby; charset=utf-8
Тем не менее, в файле есть строка с немецким символом умлаута, как вы можете видеть на скриншоте.
В предыдущей версии 2.0 Ruby вы могли использовать магические комментарии , чтобы сообщить Ruby кодировку файлов, но, очевидно, этот файл уже UTF-8.
Я пытаюсь понять, что это 2 вещи:
Как файл UTF-8 получил этот символ US-ASCII внутри него?
Как я могу это исправить (чтобы VS-Code не показывал его как неправильный)? Интересно, возможно ли что-то делать с расширением или настройкой в VS-коде?.
В ответ на (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, потому что, если я удаляю символ и набираю его снова, появляется та же ошибка. Теперь я знаю, что на самом деле не имеет значения, как он попал в файл, просто нужно знать, что выдает предупреждение.