问题
I'm using Microsoft Visual Studio Express 2012 for Web. It seems that every file which I open with it gets encoded into UTF-8. For most files which are going to be web-facing, that's fine. However, I have files in my projects that are specifically for build purposes (e.g., .bat files), which must be encoded in ANSI.
Are there any configuration settings in VS to either designate on a per file or a per extension basis the encoding? Or, if not specify the encoding, at least disable the auto-conversion to UTF-8?
回答1:
Open the problematic file in Visual Studio and...
- On the
File
menu, clickAdvanced Save Options
. - In the
Encoding
dropdown, selectUnicode (UTF-8 …
or the encoding you require. - Click
OK
.
Also see: how to change source file encoding in csharp project (visual studio / msbuild machine)?
回答2:
An option to handle the encoding of all files of a given extension on a per open basis can be configured in the Options dialog. See MSDN page on Options, Text Editor, File Extension.
Navigate to Tools > Options > Text Editor > File Extension.
For the bat extension, I selected Source Code (Text) Editor with Encoding. The with Encoding part means that the user will be given options as to what encoding to use when opening the file. The default in this mode is Auto-detect, which preserves the ANSI encoding, if that is what the file already uses. Otherwise, one can explicitly designate it for the individual file.
Unfortunately, it doesn't seem to remember the setting last used when opening a file, and will thus prompt for an encoding setting every time a file is opened.
回答3:
I had code conversion problems width VS studio 2012 as well. Namely, I had non ansi compliant characters in strings ind my .js files and unreadable was outputted to the browsers html page. I figured out that accept script files (like .js) VS 2012 creates all files in UTF-8. *The problem is with the suggestion bellow to change the defaults in the options dialog resulted in that the syntax highlighting and intelisense stopped working in all .js files.* So my workaround solution know is that I convert my .js files with notepad++ to utf-8 without BOM. In this way my "unusual" chars are appearing well in browsers and the intelisense is working fine as well.
来源:https://stackoverflow.com/questions/12276757/change-encoding-on-a-per-file-or-per-extension-basis