昨天用Visual studio 2003编译一个c#工程时,编译报错。发现是这个文件中有一些特殊字符,VS不能自动识别他们,显示成“?”。用UltraEdit打开此文件,这些字符的值在128~256范围之间,譬如0x93等。
简化代码如下:
using System;
namespace SpecialChar
{
class Class1
{
public char[] wordSep = {'\','/','`','Æ','ô','ö','&','*','_','~','Ç',' ','á'};
[STAThread]
static void Main(string[] args)
{
}
}
}
namespace SpecialChar
{
class Class1
{
public char[] wordSep = {'\','/','`','Æ','ô','ö','&','*','_','~','Ç',' ','á'};
[STAThread]
static void Main(string[] args)
{
}
}
}
查MSDN,IBM(DOS)字符集中包含有这些字符。
折腾半天,终于找到解决方法。步骤如下:
1) 如果此文件已打开,关闭此文件
2)在Solution Explorer右击此文件,在弹出菜单中点“Open With"
3) 选择”CSharp Editor with Encoding“,点”Open"按钮
4)在弹出对话框中,选择”Western European (DOS) - Codepage 850“
5) Ok后,VS可以正确显示这些字符。重新编译, OK。