Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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#_.net_Visual Studio_File - Fatal编程技术网

C# 附加到转换为特殊字符的文件的字符串

C# 附加到转换为特殊字符的文件的字符串,c#,.net,visual-studio,file,C#,.net,Visual Studio,File,我正在尝试向文件中写入字符串 string lines = "server.1=1.1.1.1:9999\nserver.2=2.2.2.2:8888\n"; File.AppendAllText(directory_path + "zoo.cfg", lines); 文件中打印的字符串是 敳癲牥ㄮㄽㄮㄮㄮ㤺㤹ਹ敳癲牥㈮㈽㈮㈮㈮㠺㠸ਸ 。 我尝试在文件.AppendAllText中使用编码ASCII、UTF-8和默认值。但是输出是相同的 环境: Visual s

我正在尝试向文件中写入字符串

        string lines = "server.1=1.1.1.1:9999\nserver.2=2.2.2.2:8888\n";
        File.AppendAllText(directory_path + "zoo.cfg", lines);
文件中打印的字符串是

敳癲牥ㄮㄽㄮㄮㄮ㤺㤹ਹ敳癲牥㈮㈽㈮㈮㈮㠺㠸ਸ

。 我尝试在文件.AppendAllText中使用编码ASCII、UTF-8和默认值。但是输出是相同的

环境:

Visual studio 2015、Windows server 2012、.net v4.5


请告诉我我做错了什么?

好了,现在这很奇怪。上面给出的代码在我的另一台机器上运行得很好。但出于某种原因,我不知道它在我的新开发环境中不起作用。 我通过添加Encoding.Unicode参数解决了这个问题

File.AppendAllTextwindows\u directory\u path+zoo.cfg,行,Encoding.Unicode

不知道为什么Encoding.UTF8/Encoding.ASCII没有更改结果字符串的格式

仍然想知道同一代码的行为为何会如此不同


我不确定这是修复还是解决方法。

追加不会重写整个文件。因此,您必须使用与现有内容相同的编码

一般来说,如果您不知道文本的编码,那么您最好不要使用该文本。如果有人给了你,把它送回去。当他们发送给您时,必须伴随着对所用编码的相互理解。顺便说一句,它不太可能是ASCII码。和编码。默认值在机器与机器之间或用户与用户之间无效


考虑到结果,文件编码为UTF-16 encoding.Unicode是完全合理的。使用任何其他编码都是垃圾代码。

您能创建一个可复制的示例吗?您发布的代码工作正常,并在文件中创建正确的文本。现有文件的编码是什么?你是怎么看的?我根本不是这么问的。再次阅读我的评论并正确回答这两个问题。@stuartd这就是我在这里发布此问题的原因。它在我的另一台机器上运行得很好。这与机器、VS或.net版本控制有关吗?不相关,但应使用Path.Combine,切勿使用+来建立带字符串的路径。