2013-04-12 36 views
0

我有一個包含日文字符串文字的Visual Studio項目。 這個項目可以在日文系統(日文Windows XP)和英文Visual Studio 2010 IDE中完全建好。日文字符串文字&Visual Studio 2010錯誤CS1009:無法識別的轉義序列

但是,如果我在英文系統(英文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程序的語言」設置。

+0

你可以發佈一些代碼發生此錯誤......? –

+0

你有沒有試過這個......如果是小項目resaving all CS,那麼你可以試試這個...'' –

+2

帶有「UTF8 with BOM」編碼的文件可能是最簡單的方法。 –

回答

2

它看起來像你有默認日文編碼保存的文件,並作爲結果,當語言環境(或者「非Unicode區域設置」)設置爲匹配編碼時,它們工作正常。

據我所知,沒有辦法配置C#編譯器和VS以非默認編碼方式打開這樣的文件。

您選擇:

  • 配置中,項目將是開放的所有機器使用相同的語言環境/語言爲您JA-JP Win XP的
  • 重新保存的所有文件(Unicode編碼之一的Unicode或帶BOM的Utf8)。一個應該能夠編寫小腳本/ C#程序打開具有正確編碼的文件,並保存在UTF8文件中。
  • 從代碼中刪除所有非ASCII字符串並將它們移動到資源。
+0

我標記了這個答案,因爲這已經足夠接近我在系統中配置的內容。 – Jefraim

相關問題