Кодировка исходного файла в Visual Studio (VS2005, но может применяться к другим версиям) - PullRequest
3 голосов
/ 09 марта 2009

Есть ли возможность легко просматривать текущую кодировку файла (utf-8, utf-8 без спецификации, ascii, western и т. Д.)?

Я работаю в основном над веб-приложениями, поэтому для меня это очень важно.

Я не могу найти это нигде, кроме диалога "Сохранить как" ... Когда вы сохраняете файл в Visual Studio, вы можете выбрать «Сохранить MyClass.cs как», а затем нажмите стрелку вниз и выберите «Сохранить с кодировкой ...». Затем у вас есть возможность просмотреть и изменить выбранные в данный момент параметры кодирования и окончания строк. Но это 4-5 кликов, слишком много работы для такой простой информации!?

Существует команда "View.ChooseEncoding", но мне не повезло в ее запуске, все, что я получаю, это "Команда" View.ChooseEncoding "недоступна".

Я пытался отобразить его в строке состояния с помощью собственной надстройки, но, к счастью, не могу найти информацию о кодировке где-либо в API автоматизации. Я использовал EnvDTE.Document для доступа к информации о текущем файле при открытии / сохранении.

Ответы [ 2 ]

1 голос
/ 13 марта 2009

Bokka,

что именно вы хотите сделать ? Насколько я знаю, Visual Studio (по крайней мере, 2005) будет просто использовать локальную кодовую страницу для используемой операционной системы. Если вы говорите по-английски, это, вероятно, Latin1, ISO-8859-1, Extended-ASCII, что угодно. Если у вас нет акцентированных / европейских символов, они все "в значительной степени" имеют одинаковое представление.

Мы видели некоторое поведение на работе, когда Visual Studio 2005 на 64-битных операционных системах (например, Vista64) сохранял в Unicode (UTF8 с BOM) по умолчанию; вышеприведенный комментарий предполагает, что Visual Studio 2008 ведет себя так же.

Что возвращает меня к вопросу - что вы хотите сделать? Вы планируете использовать раздел глобализации web.config ? Он имеет возможность указать fileEncoding, а также запрос и ответ.

   <system.web>
      <globalization 
         fileEncoding="iso-8859-1"
         requestEncoding="utf-8"
         responseEncoding="utf-8" />
   </system.web>

Для любого конкретного потока байтов, который вы получаете, трудно «знать», какая кодировка использовалась (если только это не UTF-8 с спецификацией, в этом случае легко проверить первые несколько байтов) или она была создана на вашем ПК (в этом случае он использует вашу кодовую страницу по умолчанию).

Давным-давно я написал NCharDet , который пытается определить кодировки (в основном для разных азиатских языков), но я не уверен, что это то, что вам нужно (кроме того, что это немного из -Дата). MLang использовал основной API, предоставляемый Microsoft для подобных вещей.

Извините, я не могу дать фактический ответ ...

0 голосов
/ 25 марта 2009

Посмотрите на это: Как определить кодировку текстового файла Но это применимо только к файлам Unicode, сохраненным с подписью.

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