Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在文件中保存中文、阿拉伯文、英文等字符_C#_Xml_File Io_Character Encoding - Fatal编程技术网

C# 在文件中保存中文、阿拉伯文、英文等字符

C# 在文件中保存中文、阿拉伯文、英文等字符,c#,xml,file-io,character-encoding,C#,Xml,File Io,Character Encoding,我有一个包含英文、中文和阿拉伯文字符的文件。现在,当我以字符串形式读取此文件的文本时,所有文本都会正确显示,但当我再次将该代码保存到其他文件时,它会删除我所有的英语和阿拉伯语字符,只剩下英语字符 我使用下面的代码来读取文件 string content = File.ReadAllText(Server.MapPath("myfile1.xml")); 下面是我用来将其写入另一个文件的代码 File.WriteAllText(Server.MapPath(myfile2.xml), conte

我有一个包含英文、中文和阿拉伯文字符的文件。现在,当我以字符串形式读取此文件的文本时,所有文本都会正确显示,但当我再次将该代码保存到其他文件时,它会删除我所有的英语和阿拉伯语字符,只剩下英语字符

我使用下面的代码来读取文件

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也会显示所有字符


如果使用上述代码,我不知道为什么不起作用。

编写文件时指定
UTF8
编码,该编码可以处理中文和阿拉伯文字符:

File.WriteAllText(Server.MapPath(myfile2.xml), content, Encoding.UTF8);
发件人:

UTF-8可以对任何Unicode字符进行编码。。。例如,可以支持中文和阿拉伯语(在同一文本中),而无需插入特殊代码或手动设置来切换编码


XML使用什么编码?如果不是UTF-8,这就是问题所在。因此,您可能需要使用的重载允许您提供特定的编码。我不能确定这种编码是什么,但这将解决问题。