2012-01-23 73 views

回答

5

除非您的.cs文件包含正常ASCII範圍之外的字符,否則不會在文件的實際內容中看到不同。區別在於編輯器是否嘗試檢測您再次打開文件時保存文件的字符編碼,或者專門問您。

默認情況下,當您保存一個新的.cs文件時,VS使用當前ANSI代碼頁來對字符進行編碼。 (默認情況下,您可以通過適當的選項將其切換爲UTF-8。)但是,您也可以選擇「Save with Encoding ...」,它會提示您輸入要保存的特定字符編碼。

在內部,您的代碼被當作UTF-16處理,因爲這是Windows處理的原因,因爲它是原生字符串格式。但是,在磁盤上,UTF-16很可能會炸燬你的源文件以擴大它們的大小,因爲你寫的大多數C#代碼可能適合一個字節。因此,在寫入磁盤時,VS會將數據寫入特定的代碼頁,以定義如何將UTF-16字符轉換爲其他可能的8位字符集。

當你在VS中重新加載一個文件時,它試圖找出該文件所在的編碼,如果它不能,它將回退到當前的ANSI代碼頁。 (你可以通過一些選項強制它回到UTF-8,但它不會回退到不同的編碼。)

當你重新加載文件「With Encoding」時,你會得到與當你保存文件時,詢問你使用了哪種編碼。這樣,如果Studio錯誤,您可以修復它。

除非你做了很多國際化的編程,如果你的外語字符串嵌入你的.cs文件中的語言不是默認的,你可能不需要使用顯式的「with encoding」保存或負載。但是,如果你需要它們,它們就在那裏。

+0

很好的回答!謝謝。 – ispiro

0

如果您使用編碼打開,您可以使用任何適合您的文化或地區的字符編碼進行保存。

相關問題