UTF-8 без спецификации - PullRequest
       47

UTF-8 без спецификации

168 голосов
/ 23 марта 2011

У меня есть файлы javascript, которые мне нужны для сохранения в UTF-8 (без спецификации), каждый раз, когда я конвертирую их в правильный формат в Notepad ++ , они возвращаются обратно в UTF-8 с Спецификация, когда я открываю их в Visual Studio. Как я могу остановить VS2010 от этого?

Другой вопрос, является ли UTF-8 без подписи в Visual Studio таким же, как UTF-8 без спецификации?

Ответы [ 9 ]

213 голосов
/ 23 марта 2011

BOM или Byte Order Mark иногда довольно раздражают. Visual Studio не изменяет файл, пока вы не сохраните его (как сказал Ганс).

И вот решение вашей проблемы: Если вы хотите сохранить файл с другими кодировками, выберите «Сохранить как», нажмите кнопку «Сохранить» в диалоговом окне «Файл» и выберите «Сохранить с кодировкой». Или, если вы хотите навсегда избавиться от этой настройки, просто откройте меню «Файл» и выберите «Дополнительные параметры сохранения», и там вы должны выбрать «UTF-8 без подписи» (и это также ответило на ваш последний вопрос :). Да, «UTF-8 без подписи» такой же, как и без спецификации.

24 голосов
/ 26 ноября 2012

Я создал расширение Fix File Encoding , которое не позволяет Visual Studio 2010+ добавлять спецификации в файлы UTF-8.

22 голосов
/ 21 июля 2015

Теперь с фотографиями.

  1. Перейти к File -> Save As.

enter image description here

Затем нажмите кнопку Сохранить, нажмите треугольник и нажмите Save with Encoding...

enter image description here

Нажмите кнопку ОК, чтобы перезаписать файл, а затем из списка кодировок найдите UTF-8 Without signature -> Нажмите OK.

enter image description here

Надеюсь, это сэкономит вам время.

6 голосов
/ 30 августа 2011

К сожалению, это не работает с файлами csproj.Отсутствует опция «Advanced save option», и даже если вы установили ее в «UTF-8 без подписи» для файла cs, файлы csproj по-прежнему сохраняются в спецификации.Если вы используете VSS, он по-прежнему жалуется на файлы проекта.

4 голосов
/ 07 августа 2018

UTF-8 - «Сохранить как» (без подписи) По умолчанию - Запрос на включение значения по умолчанию для UTF без подписи

VS 2017 изначально поддерживает EditorConfig , поэтому рекомендуемое решение это добавить файл .editorconfig в базу кода и установить charset => utf-8. После сохранения файла он будет сохранен как UTF-8 без спецификации.

2 голосов
/ 01 февраля 2015

Недавно я нашел этот крошечный инструмент командной строки, который добавляет или удаляет спецификацию для произвольных файлов в кодировке UTF-8: UTF BOM Utils ( новая ссылка в github)

Небольшой недостаток, вы можете скачать только простой исходный код C ++.Вы должны создать make-файл (например, с CMake ) и скомпилировать его самостоятельно, двоичные файлы на этой странице не предоставляются.Однако для разработчика программного обеспечения это не должно быть проблемой.

2 голосов
/ 02 августа 2012

Для vs2010 c ++ будут проблемы с UTF8 без спецификации, когда исходные файлы содержат многобайтовые символы (например, китайский).

Эти символы не будут правильно распознаны без спецификации, что приведет к неудачной компиляции.

1 голос
/ 21 сентября 2016

Даже с решением Dave81 сообщество Visual Studio 2015 по-прежнему возвращало мой файл в UTF8-BOM каждый раз, когда я сохранял этот HTML-файл.

Когда я создавал этот HTML-файл, я щелкал правой кнопкой мыши по проектуи выбрал «Добавить», затем добавил файл HTML.

По умолчанию Visual Studio будет включать тег в файл HTML.

Простое удаление тега с последующим применением решения Dave81 на этот раз решило проблему.

Кажется, Visual Studio анализирует ваш html-файл и, когда видит этот тег, преобразует этот файл в UTF8-Спецификация без учета исходного формата файла (UTF8 без спецификации).

** Я бы сделал комментарий прямо под решением Dave81, но у меня не было достаточно очков, чтобы сделать это ...

0 голосов
/ 14 февраля 2019

Для Код Visual Studio выполните следующие действия:

  1. В правом нижнем углу выберите текущую кодировку enter image description here
  2. Из параметров выберите Сохранить с последующим enter image description here
  3. Из опций выберите UTF-8 enter image description here
...