我正在尝试使用FTP将文本行添加到存储在Web服务器上的.txt文件中。它连接并附加文本,但由于某种原因它已损坏并显示为随机字符(符号,中文等)。这是我的代码:
numpy as np
为了尝试调试,我使用以下代码将'data'从byte []转换回字符串:
byte[] data = md5Encryptor.ComputeHash(Encoding.ASCII.GetBytes(dataString));
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpAddress + "file.txt");
request.Method = WebRequestMethods.Ftp.AppendFile;
request.ContentLength = data.Length;
request.Credentials = ftpCredentials;
Stream requestStream = request.GetRequestStream();
requestStream.Write(data, 0, data.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
以上是上述方法返回的内容,md5哈希字符串如预期的那样:
public static string BytesToString(byte[] data)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sb.Append(data[i].ToString("X2"));
}
return sb.ToString();
}
这是通过FTP附加到我的文件中的相同'data'var,结果为:
E904B52B435BF0E1DA8D4CE6EC47E45A
我甚至试过这个,以防有编码问题:
ө⮵孃跚䟬嫤
没用。谁知道我在这里做错了什么?
答案 0 :(得分:0)
原来,.txt被编码为Unicode而不是ASCII。维基百科说ASCII是默认的,但是如果你打开“另存为”的话。菜单,你可以检查。一旦我使用Encoding.Unicode保存,它就可以正常工作。