如何转换UNICODE希伯来语在VBScript中显示为Gibberish?

时间:2012-07-09 06:01:29

标签: unicode utf-8 vbscript hebrew windows-1255

  1. 我使用vbscript和WinHttp.WinHttpRequest.5.1对象从HEBREW(WINDOWS-1255 / UTF-8编码)网站收集信息。
  2. 例如:

    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/选择第二个单选按钮并按下转换按钮,你会看到正确的希伯来语。

      < / LI>

2 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:1)

感谢Charming Bobince(发布了答案),我现在能够通过实现以下内容正确地看到HEBREW(将Windows-1255编码保存到txt文件(notpad)):

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
相关问题