Visual Studio C # отключить Unicode или UTF-8 в качестве кодировки файлов и использовать вместо этого ASCII - PullRequest
0 голосов
/ 22 сентября 2009

В настоящее время я работаю над документом LaTeX, в который встраиваются файлы C #, сгенерированные Visual Studio 2008. Моя проблема заключается в том, что эти файлы кодируются в UTF-8 с помощью спецификации. Это приводит к тому, что LaTeX производит вывод, аналогичный выводу, описанному в этом посте:
Недопустимые символы в сгенерированных источниках латекса в Doxygen?

Я знаю, что могу использовать такой инструмент, как Notepad ++, чтобы конвертировать файл в ASCII или другой формат без спецификации. Но мое намерение было бы:

  • либо заставляют LaTeX использовать правильную кодировку ввода (до сих пор мне не удавалось сделать это с импортом пакета, например:

    \ usepackage {ucs}% функциональности юникода
    \ Usepackage [latin1] {inputenc}

  • или заставить Visual Studio сохранять файлы без спецификации или в простом ASCII

В противном случае я могу отредактировать файл (скомпилировать и сохранить его в VC #) и непреднамеренно ввести BOM снова, что приведет к нарушению списка кодов в документе.

Большое спасибо,
Ованес

Ответы [ 5 ]

2 голосов
/ 22 сентября 2009

Visual Studio не имеет этой опции, я полагаю, так как она создана из-за того, что .NET создан с нуля, чтобы использовать Unicode.

Однако я не верю, что Visual Studio должен использовать метки порядка байтов. Вы сказали, что Visual Studio «генерирует» эти файлы, но какой процесс действительно их создает? Это результат какого-то инструмента генерации кода? Если так, то это виновник и место, где вы должны сосредоточиться.

Я проверил несколько моих файлов кода, и ни один из них не содержит меток порядка следования байтов.

РЕДАКТИРОВАТЬ: Изменение шаблонов проектов Visual Studio

В комментариях спрашивающий сказал, что эти файлы были сгенерированы встроенным шаблоном проекта Консольного приложения. Они хранятся на вашем жестком диске и могут быть изменены при необходимости.

Ваш путь установки может отличаться, но в моей системе я перешел в этот каталог:

C: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ProjectTemplates \ CSharp \ Windows \ 1033

Здесь я нахожу ConsoleApplication.zip. Я скопировал это на свой рабочий стол (для безопасности) и распаковал, и внутри вы найдете 4 файла - файл .vstemplate и 3 файла, которые создаются проектом: AssemblyInfo.cs, ConsoleApplication.csproj и Program.cs.

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

ИЛИ, чтобы быть более безопасным, вы можете изменить имя шаблона на «Консольный проект - без спецификации» или что-то в этом роде. В файле .vstemplate есть атрибут Name, который использует атрибут Package для вызова информации откуда-либо посредством guid. Вы можете заменить эту строку имени простой строкой, в которой указано имя.

<Name>Console Application - No BOM</Name>

Затем распакуйте файлы и поместите zip-файл по следующему пути:

(Мои документы) \ Visual Studio 2008 \ Templates \ ProjectTemplates \ Visual C #

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

Шаблоны элементов (например, Class) можно изменять аналогичным образом - не нужно слишком много времени, чтобы найти каталог ItemTemplates по умолчанию и для пользователя.

2 голосов
/ 22 сентября 2009

Я не уверен, что понимаю ваш сценарий. Но если вы просто хотите преобразовать файл в ASCII из Visual Studio, выберите «Файл - Сохранить как» и переключите кодировку на ASCII.

0 голосов
/ 06 октября 2017

Вы можете использовать плагин для Visual Studio: https://vlasovstudio.com/fix-file-encoding/, этот плагин не позволяет Visual Studio добавлять спецификацию в начало файла, поэтому все мои файлы могут иметь кодировку UTF-8, а необработанные строки могут содержат специальные символы, и они будут отображаться / записываться без проблем,

0 голосов
/ 22 июля 2016

В VS 2015 вы можете указать кодировку, используя File -> Advanced save options... диалог

0 голосов
/ 22 сентября 2009

вы пробовали \ usepackage [UTF8] {inputenc}

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