0

我有一个包含日语字符串文字的视觉工作室项目。该项目可以在日文系统(日文 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 的情况,我们可能需要设置“Language for Non-Unicode Programs”。在 Win Server 2008 R2 中,我更改了默认的系统区域设置。

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

4

1 回答 1

2

看起来您有以默认日语编码保存的文件,因此当区域设置(或“非 Unicode 区域设置”)设置为匹配编码时它们可以正常工作。

据我所知,无法配置 C# 编译器和 VS 以非默认编码打开此类文件。

您的选择:

  • 将项目将要打开的所有机器配置为使用与 JA-JP Win XP 相同的区域设置/语言
  • 使用 Unicode 编码(Unicode 或 Utf8 与 BOM)之一重新保存所有文件。如果文件很多,应该能够编写小脚本/C# 程序以正确编码打开文件并以 UTF8 保存。
  • 从代码中删除所有非 ASCII 字符串并将它们移动到资源中。
于 2013-04-12T05:32:10.420 回答