4
  1. 我正在使用 vbscript 和 WinHttp.WinHttpRequest.5.1 对象从希伯来语(WINDOWS-1255 / UTF-8 编码)网站收集信息。

例如 :

Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
...
'writes the file as unicode (can't use Ascii)
Set Fileout = FSO.CreateTextFile("c:\temp\myfile.xml", true, true) 

....
Fileout.WriteLine(objWinHttp.responsetext)
  1. 在记事本/记事本++ 中查看文件时,我将希伯来语视为 Gibrish / Gibberish。例如: äìëåú - äøá àáøäí éåñó - îåøùú

  2. 我需要一个 vbscript 函数来正确返回希伯来语,该函数应该类似于以下http://www.pixiesoft.com/flip/选择第二个单选按钮并按转换按钮,您将正确看到希伯来语。

4

2 回答 2

4

您的脚本正确地获取字节流并按原样保存。那里没有问题。

您的问题是本地文本编辑器不知道它应该将文件读取为 cp1255,因此它会在您的机器上尝试默认的 cp1252。您无法将文件在本地保存为 cp1252,以便记事本正确读取,因为 cp1252 不包含任何希伯来语字符。

什么最终会读取文件或字节流,需要正确地选择希伯来语?如果它不支持 cp1255,您将需要找到该工具支持的编码,并将 cp1255 字符串转换为该编码。建议您尝试 UTF-8 或 UTF-16LE(Windows 的编码误导性地称为“Unicode”。)

在 VBScript/JScript 中的编码之间转换文本可以作为 ADODB 流的副作用来完成。请参阅此答案中的示例。

于 2012-07-09T13:38:23.387 回答
2

Thanks to Charming Bobince (that posted the answer), I am now able to see HEBREW correctly (saving a windows-1255 encoding to a txt file (notpad)) by implementing the following :

Function ConvertFromUTF8(sIn)

        Dim oIn: Set oIn = CreateObject("ADODB.Stream")

        oIn.Open
        oIn.CharSet = "X-ANSI"
        oIn.WriteText sIn
        oIn.Position = 0
        oIn.CharSet = "WINDOWS-1255"
        ConvertFromUTF8 = oIn.ReadText
        oIn.Close

End Function
于 2012-07-09T14:45:35.330 回答