下载的 CSV 以 BACKSPACE 和其他奇怪的字符开头
Downloaded CSV starts with BACKSPACE and other weird characters
我从 FTP 服务器(使用过去一直有效的一些 VB6 代码)下载了一个 CSV(以 UTF-8 编码),发现它以 08 00 50 9e
开头(BACKSPACE
NULL
P
ž
ASCII).
我以前下载过相同的文件(不同版本),但从未遇到过问题,所以我不认为 FTP 客户端有问题。
这些字符有什么意义吗?
我尝试在 Google 上搜索该字符串,但(显然?)没有成功搜索。
我找到了答案...这是 VB6 代码的问题:它在 Binary
[=27= 中使用 Put #iFileNumber, , sFileContents
而不是 Print #iFileNumber, sFileContents
] 模式而不是 Output
模式(不知道为什么它以前有效,但也许我在没有意识到的情况下改变了一些东西)。
Put
添加一个四字节字符串长度指示符,因此 08 00 50 9e
.
有问题的代码
Open App.Path & "\Temp.csv" For Binary As #iFileNumber
Put #iFileNumber, , StrConv(x.Value, vbUnicode)
Close
工作代码
Open App.Path & "\Temp.csv" For Output As #iFileNumber
Print #iFileNumber, StrConv(x.Value, vbUnicode)
Close
我从 FTP 服务器(使用过去一直有效的一些 VB6 代码)下载了一个 CSV(以 UTF-8 编码),发现它以 08 00 50 9e
开头(BACKSPACE
NULL
P
ž
ASCII).
我以前下载过相同的文件(不同版本),但从未遇到过问题,所以我不认为 FTP 客户端有问题。
这些字符有什么意义吗?
我尝试在 Google 上搜索该字符串,但(显然?)没有成功搜索。
我找到了答案...这是 VB6 代码的问题:它在 Binary
[=27= 中使用 Put #iFileNumber, , sFileContents
而不是 Print #iFileNumber, sFileContents
] 模式而不是 Output
模式(不知道为什么它以前有效,但也许我在没有意识到的情况下改变了一些东西)。
Put
添加一个四字节字符串长度指示符,因此 08 00 50 9e
.
有问题的代码
Open App.Path & "\Temp.csv" For Binary As #iFileNumber
Put #iFileNumber, , StrConv(x.Value, vbUnicode)
Close
工作代码
Open App.Path & "\Temp.csv" For Output As #iFileNumber
Print #iFileNumber, StrConv(x.Value, vbUnicode)
Close