2016-07-01 17 views
-1

私はMsxml2.DOMDocument.4.0のオブジェクトで読み取ったXMLを持っています。このXMLでは、私はëのような文字を受け取ります。私はこの文字を読むと、のようなVBScriptコードになります。 XMLエンコーディングはUTF-8に設定されています。XMLからの特殊文字の符号化

これは私が受け取るXMLの一部です:

<?xml version="1.0" encoding="utf-8"?> 

<shiporder> 

    <DriverData> 

    <DriverLicenseCountry>Australië</DriverLicenseCountry> 

    </DriverData> 

</shiporder> 

そして、これは私がオブジェクトを作成するために使用するVBScriptコードです:

Set oXml = Server.CreateObject("Msxml2.DOMDocument.4.0") 

私はこのようなノードをお読みください。 oDOCは、XMLとsNoeudある

Function GetXMLval2(oDoc, sNoeud) 
    Dim oNoeud 
    Dim objNode 
    Dim colNodes 
    Dim sRes 

    sRes="" 

    Set colNodes=oDoc.selectNodes(sNoeud) 

    For Each objNode in colNodes 
     sRes= objNode.Text 
    Next 

    GetXMLval2=sRes 

End Function 

はノード名です。 objNode.Txtはその奇妙な文字を返しています。

アイデア?

+2

"私はこのようなノードを読んでいます" - それに何をしますか?キャラクターを表示/表示している場所はわかりません。 –

+0

@JonSkeetは私がそれをどうするかは関係ありません。私はそれをDBに送ったり、表示したり、変数に格納したりすることができます。問題は、Node.textがその奇妙な文字でその文字列を返すことです。 – Sebastian

+2

あなたがそのキャラクターをどこに見ているのかわからないので、あなたがそれをすることは絶対に重要です。実際の文字をサポートしていない場所に表示しようとすると、問題が説明されます。 XMLファイル(問題のある文字を含む)を他のプラットフォームから正しく読み取ることができますか? .NETで? –

答えて

1

@JonSkeetpoint's outとしてあなたが「あなたはその文字を見ている」を説明していませんが、ここでの問題が何であるかを完全にわかりません。念頭に置いて

cscript.exe

Option Explicit 
Dim xml: Set xml = CreateObject("Msxml2.DOMDocument.6.0") 
Call xml.Load("test50.xml") 

Dim node: Set node = xml.selectSingleNode("//DriverLicenseCountry") 

WScript.Echo node.Text 

私のシステムはMsxml2.DOMDocument.4.0

をインストールし、期待通り、以下の出力が得られていないので、私のテストはMsxml2.DOMDocument.6.0を使用して簡単なテストをした

>cscript /nologo test50.vbs 
Australië 

Classic ASPを使用するIISなどのサーバー環境でこれを使用している場合は、出力が正しくエンコードされていることを確認するための他の手順がありますが、これまでにスタンドアロンスクリプトとして実行していると言われています。

+0

私は持っているその値を読み取るために使用するコードで質問を更新しました。見てみて、何かを見つけてください。 Thx – Sebastian

+0

@セバスチャン私はあなたの機能のロジックが少し離れていることがわかります。まだ[あなたの質問に対する私のコメント](http://stackoverflow.com/questions/38142080/encoding-of-special-characters-from-xml#comment63716328_38142080)に返信するのを待っています。 – Lankymart

+0

申し訳ありませんが、私の間違いは、このコードでは愚かなことです。 request.binaryreadでリクエストからXMLを取得します。それは、バイナリの読み込みから文字列への変換が、ëの代わりにÃを返すように見えます。なぜそれがそれをするのか理解できません。とにかくお返事ありがとうございます。 – Sebastian

関連する問題