Opened 3 years ago
UTF-8 Characters in file/directory name
|Reported by:||Amy||Owned by:|
|Keywords:||invalid characters "utf-8"||Cc:|
|Component version:||3.31.0||Operating system type:||Windows|
|Operating system version:||10.1709 x64|
Just ran into this issue. If one side supports UTF-8 characters in either the filename or directory name, and the other side does not, the transfer fails (and can never succeed.)
The main issue here is that the error message is a terribly generic "Could not start transfer".
The easiest fix for this is simply showing a better error message (Took me a while to figure it out.)
A better solution would be to use some system function to determine and invalid path characters and add them to the list of invalid characters for filtering.
In this case, as I was downloading a site backup (new client,) they had images (from god knows where) that included the width and height as 57×57 instead of 57x57 (first contains a, new to me, UTF-8 x whereas the second contains a normal x.)
Let me know if you need additional logs or anything else.
00:13:25 Trace: CControlSocket::SendNextCommand() 00:13:25 Trace: CSftpFileTransferOpData::Send() in state 0 00:13:25 Status: Starting download of /applications/wfcrhveasu/public_html/wp-content/themes/ALTN/icons/apple-touch-icon-57×57-precomposed.png.png 00:13:25 Trace: CSftpChangeDirOpData::Send() in state 0 00:13:25 Trace: CControlSocket::ResetOperation(0) 00:13:25 Trace: CControlSocket::ParseSubcommandResult(0) 00:13:25 Trace: CSftpFileTransferOpData::SubcommandResult() in state 1 00:13:25 Trace: CControlSocket::SendNextCommand() 00:13:25 Trace: CSftpFileTransferOpData::Send() in state 4 00:13:25 Command: get "apple-touch-icon-57×57-precomposed.png.png" "D:\Projects\Adfinitely\AnyLabTestNow\old-server\applications\wfcrhveasu\public_html\wp-content\themes\ALTN\icons\apple-touch-icon-57×57-precomposed.png.png" 00:13:25 Error: /applications/wfcrhveasu/public_html/wp-content/themes/ALTN/icons/apple-touch-icon-57×57-precomposed.png.png: open for read: no such file or directory 00:13:25 Trace: CSftpFileTransferOpData::ParseResponse() in state 4 00:13:25 Trace: CControlSocket::ResetOperation(2) 00:13:25 Error: File transfer failed