我有一个包含英文,中文和阿拉伯字符的文件。现在,当我在一个字符串中读取该文件的文本时,所有文本都正确显示,但是当我再次将该代码保存到其他文件时,它会删除我所有的英文和阿拉伯字符,只剩下部分是英文字符。
我使用下面的代码来读取文件
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也会显示所有字符。
如果我使用上面的代码,我不知道为什么这不起作用。
答案 0 :(得分:2)
在您编写文件时指定UTF8
编码,该文件可以处理您的中文和阿拉伯字符:
File.WriteAllText(Server.MapPath(myfile2.xml), content, Encoding.UTF8);
来自Wikipedia:
UTF-8可以编码任何Unicode字符。 ...例如,可以支持中文和阿拉伯语(在同一文本中),无需插入特殊代码或手动设置来切换编码。