2

古い .asp ページの束からデータベースに情報を渡すために Web サービスを使用しています。問題は、httpGet を使用して、安全に渡すことができるように情報をエンコードする必要があることです。

すべてが夢のように機能しますが、ä ö や å などのスカンジナビア文字が四角で表示されることを除けば、すべてが夢のようです。これが会社のIIS言語設定(それらに触れることはできません)と関係があるのか​​ どうかさえわかりませんが、aspページに特定のエンコーディングを強制的に使用させる方法があるかどうか疑問に思っています.次に、asp.net Web サービスを同じ文字セットでデコードするように強制し、その間にサーバー設定を一切入れずに、すべてを混同する機会を得ますか?

私は周りを見回そうとしましたが、これを行う方法を正確に示す明確な例は見つかりませんでした. 返信は簡潔にしてください。私はここでのインターンシップの初心者です。助けてくれてありがとう!

編集: お詫び申し上げます。コードは非常に単純だったので含めませんでした。ここ:

.asp

function loginfo()
   Dim text
   text = "ääböö"
   text = Server.URLENCODE(text)

   message = "http://server1/logger_webservice/service.asmx/test_Event?" & _
            "userID=" & userID
   Set objRequest = Server.createobject("MSXML2.XMLHTTP")

   With objRequest
   .open "GET", message, False
   .setRequestHeader "Content-Type", "text/xml"
   .send
   End With

   loginfo = objRequest.responseText
end function

ウェブサーバー:

<WebMethod()> _
Public Function test_Event(ByVal userId As String) As Boolean
   Dim kirj As StreamWriter
   kirj = File.CreateText("C:\Inetpub\server1\Logger_WebService\test_logEvent.txt")

   userId = Server.UrlDecode(userId)

   kirj.WriteLine("userId = " & userId)
   kirj.Close()
   kirj.Dispose()
End Function

とにかく、助けてくれてありがとう。これについてもっと調べてみますが、いつものように、ストレスと焦りが私を先に進ませています. 最もよく使用されるスカンジナビア文字を手動で暗号化する簡単なコードを作成し、Web サーバーで復号化しました。これまでのところ問題なく動作していますが、合併症が起こらないことを願っています。とにかく、フィンランド語の基本的な文字 ä、ö、å が欲しかっただけです。:)

見つけられなかった特定の文字セットにエンコーディングを強制する簡単な方法があると思っただけです。自分で情報を探すのが苦手。

4

2 に答える 2

0

コードを掘り下げることなく、「X 行にある」という回答はできませんが、あなたが扱っている問題はエンコードの問題です。ASCII から UTF-8、本格的な Unicode まで、文字列をエンコードする方法は複数あります。これが意味することは、完全な Unicode エンコーディングを強制すると問題が解決する可能性があるということです。

これを行うには、エンコーディングを使用して明示的にストリーム (および/またはリーダー/ライター) を作成できます。メソッドはオブジェクトの種類によって異なり、コードがわからないため、明確な答えを出すことはできません。

ただし、ASP を使用すると、まだガベージが発生する可能性があります。そして、古典的な ASP で遊んでから長い時間が経ちましたが、その答えを得るために掘り下げなければなりませんでした。幸いなことに、ASP をテストして正しい文字が送信されることを確認する方法があるようですので、テストしてください。機能する場合は、Web サービスに注目してください。

于 2009-03-12T14:32:07.703 に答える