2014-04-21 74 views
0

我有一個包含英文,中文和阿拉伯文字符的文件。現在,當我用字符串讀取文件中的文本時,所有文本都正確顯示,但是當我再次將該代碼保存到其他文件時,它將刪除我所有的英文和阿拉伯文字符,只剩下部分是英文字符。在文件中保存中文,阿拉伯文,英文等字符

我使用下面的代碼讀取文件

string content = File.ReadAllText(Server.MapPath("myfile1.xml")); 

下面的代碼我使用將其寫入到另一個文件

File.WriteAllText(Server.MapPath(myfile2.xml), content); 

當我打開Visual Studio中myfile2.xml它不顯示中文和阿拉伯文字符,但在myfile1.xml中有。即使我將myfile1.xml的內容複製到myfile2.xml,myfile2.xml也會顯示所有的字符。

我不知道爲什麼這不工作,如果我使用上面的代碼。

+1

XML使用什麼編碼?如果它不是UTF-8,那就是問題所在。 –

+1

所以你可能需要使用['WriteAllText'](http://msdn.microsoft.com/en-us/library/ms143376(v = vs.110).aspx)的重載,它允許你提供特定的編碼。什麼編碼是,我不能確定,但​​這將解決問題。 –

回答

2

指定UTF8編碼,當你寫的文件,它可以處理你的中國和阿拉伯文字:

File.WriteAllText(Server.MapPath(myfile2.xml), content, Encoding.UTF8); 

Wikipedia

UTF-8可以編碼任何Unicode字符。 ...例如中文和阿拉伯文可以在沒有插入特殊代碼的情況下支持(在同一文本中)或者手動設置來切換編碼。

相關問題