通过 FTP 将 ANSI 字符串写入 Unicode 文件

2023-11-30

我有以下 Visual Basic 6.0 函数,它通过 FTP 将 ANSI 字符串写入新文件。我希望它将文件写入 UTF-16LE。在以下方法中有什么好的方法可以做到这一点吗?

Public Sub writeToFile(ByVal FTPServer As String _
                 , ByVal userName As String _
                 , ByVal password As String _
                 , ByVal contents As String _
                 , ByVal destinationFile As String)

    Dim hFile As Long
    Dim lCount As Long

    inetOpen
    inetConnect FTPServer, userName, password
    hFile = apiFtpOpenFile(m_hFTP, destinationFile, GENERIC_WRITE, FTP_TRANSFER_TYPE_BINARY, 0&)
    If hFile = 0 Then
        Err.Raise EWMFTPErrorCodes.wmFTPSendError, , internetError
    End If

    If apiInternetWriteFile(hFile, contents, Len(contents), lCount) = 0 Then
        Err.Raise EWMFTPErrorCodes.wmFTPSendError, , internetError
    End If

    apiInternetCloseHandle hFile
End Sub

我已经有大约 10 年没有使用 Visual Basic 6.0 了,所以我充其量只是摇摇欲坠。任何投入将不胜感激。

这是 apiInternetWriteFile 声明;

Private Declare Function apiInternetWriteFile Lib "wininet.dll" Alias "InternetWriteFile" ( _
                         ByVal hFile As Long _
                       , ByVal lpBuffer As String _
                       , ByVal dwNumberOfBytesToWrite As Long _
                       , ByRef lpdwNumberOfBytesWritten As Long) As Long

我们需要查看 apiInternetWriteFile 的声明。我很确定这是一个Declare可能会进入 API 调用某物在 WinINet.dll 中。我的猜测是你需要:

  • 更改声明,使其期望ByVal Long对于第二个参数
  • EDIT要在一开始就获得 BOM,请尝试Contents = ChrW(&HFEFF&) & Contents。或者可能FFEF,不确定字节顺序。
  • Pass StrPtr(contents)对于第二个参数
  • Pass Len(contents)*2对于第三个参数(长度以字节为单位)

这将传递一个 Unicode UTF-16 字符串作为内容参数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 FTP 将 ANSI 字符串写入 Unicode 文件 的相关文章

随机推荐

  • MIPS 汇编和伪指令

    李 立即加载 MIPS 中的伪指令根据常量的符号和大小以不同方式将常量加载到寄存器中 例如 当常量是二进制补码的 16 位数字 2 15 我找到的链接没有具体解决这个问题 如果你用例子来解释的话那就太好了 我使用火星模拟器 LI当立即数可以
  • 让 python 生成器在后台运行

    现在我有一些代码大致执行以下操作 def generator while True value do some lengthy IO yield value def model for datapoint in generator do s
  • 当错误再次出现时,错误处理不起作用

    逻辑 用户 按下按钮 代码 创建 Recordset rstStud 学生 和 rstGroupStud 学生组 Code Cycle Enumerates rstStud 代码 添加条目到 rstGroupStud 代码 如果该记录存 在
  • 无法从 iPhone Xs Max 获取 UDID | iOS |苹果| iPhone

    I need to get the UDID of my iPhone Xs Max to test my App Apparently That does not work on the iPhone Xs Max 您收到错误是因为 iO
  • tkinter:如何让用户在asksaveasfilename-dialog 中选择文件类型?

    目前 我正在编写一个 GUI 它应该允许用户保存文件并选择文件类型 比如说 jpg bmp 我正在使用 tkinter 和 Python 3 4 不幸的是 我无法弄清楚用户选择了哪种文件类型 我正在使用asksaveasfilename d
  • 是否可以启用 Firebase 电子邮件身份验证但禁用登录?

    在我的应用程序中 我已经使用 Google 帐户进行 Firebase 身份验证 但我还想授权一些没有 Google 帐户的用户 因此 我想从 Firebase 控制台手动将它们添加到授权服务器并启用电子邮件身份验证 我不希望随机用户能够使
  • 隐藏所有 li 元素并显示前 2 个元素并通过按钮切换它们

    假设我有 ul li 2 li li 3 li li 4 li li 5 li ul 我想要 jQuery 代码隐藏所有 li 然后展示第一个和第二个 然后append 额外的 li li more li 用于切换 隐里 这应该可以做到 h
  • Promise 中的代码执行和使用 return 语句[重复]

    这个问题在这里已经有答案了 在这里 在使用 Promise 时我应该返回resolve and reject方法 代码执行顺利 但如果有多个条件语句 则会reject and resolve自动结束或者我们必须使用 return 语句 co
  • 一种以恒定速度沿线移动鸵鸟的有效算法

    问题 在笛卡尔坐标系 仅限 x y 中以恒定速度沿直线移动物体 更新速度不稳定 移动速度必须接近精确 并且物体必须非常接近目的地 该线路的源站和目的地可以是任何地方 给定 源地址和目标地址 x0 x1 y0 y1 以及任意值的速度 顺便说一
  • 覆盖 Ajax 成功事件

    我正在尝试覆盖 jQueryajax函数来处理成功事件的默认操作 但也执行我在中使用的回调函数options范围 目的是什么 响应中返回的标签我总是想从响应中删除以在其他地方使用 场景是 Ajax提交 阿贾克斯成功 默认成功操作 调用Aja
  • 如何为我的自定义 TabBarController 设置自定义 tabBar?

    我的自定义选项卡栏 class MyTabBar UITabBar My custom tab Bar Controller class MyTabBarController UITabBarController 我的问题是如何在自定义选项
  • 熊猫找到满足条件的日期之间的持续时间?

    我有一个 pandas DataFrame 如下所示 VENDOR ID DATE 1 33 01 12 2018 2 33 03 12 2018 3 12 01 08 2018 4 12 01 15 2018 5 12 01 23 201
  • 用数组中缺失周期的行填充二维数组

    我有一个包含 1 13 期间的数组 有时 该数组并不包含所有期间的数据 我需要填写缺失的数据 例如 array period gt 7 y gt 20 period gt 8 y gt 20 50 period gt 9 y gt 7020
  • 我们可以用Java读取操作系统的环境变量吗?

    我的操作系统是windows7 我想读取 Java 应用程序中的环境变量 我搜了google很多人的答案都是使用方法System getProperty String name or System getenv String name 但这
  • 根据对象属性删除数组元素

    我有一个像这样的对象数组 var myArray field id operator eq value id field cStatus operator eq value cStatus field money operator eq v
  • Javascript按名称删除嵌套对象属性[重复]

    这个问题在这里已经有答案了 我有一个复杂的 javascript 对象 其中包含多个嵌套数组和映射 我想删除具有给定名称的对象的每个字段 例如 myObj name John deleteMe 30 cars car1 Ford car2
  • Python:继续外循环中的下一次迭代

    我想知道是否有任何内置方法可以继续 python 外循环中的下一次迭代 例如 考虑以下代码 for ii in range 200 for jj in range 200 400 block0 if something continue b
  • 增加 WebView 中 WebSQL 配额的大小

    在普通的 Android Web 应用程序中 WebSQL 数据库的最大大小通常约为 8MB 在我正在制作的混合网络应用程序中 我想增加此限制 我该怎么做呢 看起来网络存储可能与它有关 但我能看到的唯一方法似乎是设置大小 setQuotaF
  • JavaScript 数独 - 检查规则

    我正在开发一个 javascript 数独 就输入验证而言 我很困惑 当每个值被输入到数独表中时 我有一个 onkeyup 触发一个函数 我试图使用该函数来确保没有值进入已经存在此类值的行 列 框 这是我第一次尝试这样的项目 所以我提前为菜
  • 通过 FTP 将 ANSI 字符串写入 Unicode 文件

    我有以下 Visual Basic 6 0 函数 它通过 FTP 将 ANSI 字符串写入新文件 我希望它将文件写入 UTF 16LE 在以下方法中有什么好的方法可以做到这一点吗 Public Sub writeToFile ByVal F