В чем разница между «редактором Csharp» и «редактором Csharp с кодировкой»? - PullRequest
4 голосов
/ 23 января 2012

В меню Open with файла .cs есть Csharp editor и Csharp editor with encoding.Я открыл решение с обоими и не увидел разницы.

В чем разница между ними?

Ответы [ 2 ]

6 голосов
/ 23 января 2012

Если ваш файл .cs не содержит символов, выходящих за пределы обычного диапазона ASCII, вы не увидите разницы в реальном содержимом файла. Разница в том, пытается ли редактор определить кодировку символов, с которой вы сохранили ваш файл, когда вы открываете его снова, или спрашивает вас конкретно.

По умолчанию, когда вы сохраняете новый файл .cs, VS использует текущую кодовую страницу ANSI для кодирования символов. (Вы можете переключить это, чтобы использовать UTF-8 по умолчанию с соответствующими параметрами.) Однако вместо этого вы можете выбрать «Сохранить с кодировкой ...», которая предложит вам конкретную кодировку символов, которую вы хотите сохранить.

Внутренне, ваш код обрабатывается как UTF-16, так как это то, с чем Windows имеет дело, поскольку это собственный формат строки. На диске, однако, UTF-16, скорее всего, взорвет ваши исходные файлы, чтобы удвоить их размер, так как большая часть написанного вами кода C #, вероятно, помещается в один байт. Таким образом, при записи на диск VS записывает ваши данные в определенной кодовой странице, которая определяет, как преобразовать символы UTF-16 в некоторый другой, возможно, 8-битный набор символов.

Когда вы перезагружаете файл в VS, он пытается выяснить, в какой кодировке находился этот файл, и, если это невозможно, он возвращается к текущей кодовой странице ANSI. (Вы можете заставить его вернуться к UTF-8 с помощью некоторых опций, но он никогда не переключится на другую кодировку.)

Когда вы перезагружаете файл «С кодировкой», вы получаете то же приглашение, что и при сохранении файла, спрашивая, какая кодировка использовалась. Таким образом, если Studio ошибется, вы можете это исправить.

Если вы не занимаетесь большим количеством интернационализированного программирования, где у вас есть строки на иностранных языках, встроенные в ваш файл .cs с языка, отличного от языка по умолчанию, вам, вероятно, не нужно использовать явное сохранение или загрузку с кодировкой , Но они есть, если они вам нужны.

0 голосов
/ 23 января 2012

Если вы открываете кодировку, вы можете сохранить любую кодировку, соответствующую вашей культуре или региону.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...