gpt4 book ai didi

c# - 仁慈SSH.NET : character encoding when uploading files

转载 作者:行者123 更新时间:2023-11-30 16:03:18 45 4
gpt4 key购买 nike

我目前正在使用 Renci.SshNet 通过 SFTP 上传文件和目录,到目前为止一切正常,除了在复制包含特殊字符(如德语字母 ß、ä)的文件时出现编码问题。 Ø。 ü等。

例如,当我尝试上传名为“Fünf”的目录时,该名称被转录为“Fünf”。

是否需要启用或设置任何类型的编码才能使我的字符串正确到达?

using (var sftp = new SftpClient(host, username, password))
{
sftp.Connect();
Stream file3 = File.OpenRead(localFileName);
var result = sftp.BeginUploadFile(file3, remoteFileName) as SftpUploadAsyncResult;
}

最佳答案

SSH.NET 默认为 UTF-8 编码。

您的 SFTP 服务器可能使用不同的编码(可能是 ISO-8859-1 )。

要使 SSH.NET 使用非 UTF-8 编码,请使用采用 ConnectionInfoSftpClient 构造函数的重载:

public SftpClient(ConnectionInfo connectionInfo)

并根据需要设置ConnectionInfo.Encoding


您最终使用的示例代码:

var meth = new PasswordAuthenticationMethod(username, password);
ConnectionInfo myConnectionInfo = new ConnectionInfo(host, 22, username, meth);
myConnectionInfo.Encoding = System.Text.Encoding.GetEncoding("ISO-8859-1");

using (var sftp = new SftpClient(myConnectionInfo))
{
sftp.Connect();
....
}

关于c# - 仁慈SSH.NET : character encoding when uploading files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36548980/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com