4
  1. vbscript と WinHttp.WinHttpRequest.5.1 オブジェクトを使用して、HEBREW (WINDOWS-1255 / UTF-8 エンコーディング) Web サイトから情報を収集しています。

例えば ​​:

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. ファイルをメモ帳/メモ帳++で表示すると、ヘブライ語がジブリッシュ/ジバールとして表示されます。例: äìëåú - äøá àáøäí éåñó - îåøùú

  2. ヘブライ語を正しく返すには、vbscript 関数が必要です。この関数は、http: //www.pixiesoft.com/flip/ のように 2 番目のラジオ ボタンを選択して変換ボタンを押すと、ヘブライ語が正しく表示されます。

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

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
于 2012-07-09T14:45:35.330 に答える