日语字符串文字& Visual Studio 2010&错误CS1009:无法识别的转义序列

时间:2013-04-12 04:50:52

标签: c# msbuild

我有一个包含日语字符串文字的visual studio项目。 该项目可以在日语系统(日语Windows XP)和英语Visual Studio 2010 IDE中完全构建。

但是,如果我在英语系统(英语Windows XP)和英语Visual Studio 2010 IDE中构建项目,我会收到很多“错误CS1009:无法识别的转义序列”错误。

可能的原因是什么? 我们是否可以将Visual Studio 2010配置为将项目解释为基于UTF8?

我到处寻找,似乎无法找到解决方案。

示例代码:

try
{
    //ƒRƒ“ƒo[ƒg‘Îۂ̃tƒ@ƒCƒ‹ƒŠƒXƒg•\Ž¦DlgŒÄ‚Ño‚µ&ˆ—ŽÀs
    frmSelFiles = new frmSelectFile(strLoadPath, strSavePath);
    frmSelFiles.ShowDialog(this);
}
catch(ConvertException ce)
{
    throw ce;
}
catch(Exception e2)
{
    // the gibberish strings are actually Unicode characters
    // the CSC1009 error occurs here: \Ž
    ConvertException ce = new ConvertException(e2,"ƒtƒ@ƒCƒ‹‘I‘ðƒ_ƒCƒAƒƒOƒ{ƒbƒNƒX‚ð•\Ž¦‚Å‚«‚Ü‚¹‚ñB");
    throw ce;
}
finally
{
    //ƒŠƒ\[ƒX‰ð•ú
    if(frmSelFiles != null)
    {
        frmSelFiles.Dispose();
    }
}

解决方案

我能够通过更改环境的默认语言环境设置来解决此问题。对于WinXP的情况,我们可能需要设置“非Unicode程序的语言”。 在Win Server 2008 R2中,我更改了默认的系统区域设置。

似乎MSBuild或MS Visual Studio(2010)采用“非Unicode程序语言”设置。

1 个答案:

答案 0 :(得分:2)

看起来您使用默认的日语编码保存文件,因此当语言环境(或者可能是“非Unicode语言环境”)设置为匹配编码时,它们可以正常工作。

据我所知,没有办法配置C#编译器和VS以非默认编码打开这些文件。

您可以选择:

  • 配置所有打开项目的计算机,使用与JA-JP Win XP相同的语言环境/语言
  • 使用Unicode编码之一(带有BOM的Unicode或Utf8)重新保存所有文件。一个应该能够编写小脚本/ C#程序来打开具有正确编码的文件,如果文件很多,则以UTF8保存。
  • 从代码中删除所有非ASCII字符串并将其移动到资源。