Проблема: Visual Studio 2015 некорректно отображает кириллические комментарии в коде, заменяя их на "кракозябры" вида Äæèãóðäà. При этом в Visual Studio 2013 комментарии отображаются нормально. Дискуссия о пользе и вреде кириллицы в комментариях стоит отдельного поста, а сейчас я бы хотел описать способ решения данной проблемы, который сработал для нашей небольшой команды.
Прежде всего, в глаза бросилось то, что "пораженные" файлы с присутствием кириллицы сохранены в кодировке Windows-1251, тогда как вся остальная часть проекта - в UTF-8. А "кракозябры" возникают потому, что Visual Studio читает файл, ранее сохраненный в кодировке Windows-1251 как файл в кодировке Windows-1252 (Western European). Этот баг достаточно просто эмулировать в Notepad++:
Прежде всего, в глаза бросилось то, что "пораженные" файлы с присутствием кириллицы сохранены в кодировке Windows-1251, тогда как вся остальная часть проекта - в UTF-8. А "кракозябры" возникают потому, что Visual Studio читает файл, ранее сохраненный в кодировке Windows-1251 как файл в кодировке Windows-1252 (Western European). Этот баг достаточно просто эмулировать в Notepad++:
- Создаем новый файл, пишем кириллический текст;
- Устанавливаем кодировку в Windows-1251: Encoding - Character sets - Cyrillic - Windows-1251;
- Сохраняем и закрываем файл;
- Вновь открываем файл;
- Устанавливаем кодировку в Windows-1252: Encoding - Character sets - Western European - Windows-1251;
- Оказывается, в компиляторе VS2015 есть баг, связанный с кодировкой, для его устранения необходимо установить Visual Studio 2015 Update 1 (доступен в Extentions and Updates). Пруф: https://github.com/dotnet/roslyn/issues/4022.
- Студия по-умолчанию использует настройки ОС для решения проблем с кодировкой. Необходимо настроить Windows: для русскоязычной версии (о ужас) идем «Языки и рег. стандарты - Дополнительно - Изменить язык системы» и устанавливаем русский язык.
(Бес)полезная информация:
- Visual Studio позволяет вручную задать кодировку для сохраняемого файла через Save As - Save with Encoding (жмем на стрелочку возле клавиши Save);
- Есть настройка Options - Environment - Documents - Save documents in Unicode when data cannot be saved in codepage. Пользы от нее не замечено.
Комментариев нет:
Отправить комментарий