آسيا والمحيط الهادئ الكلاسيكي لمشكلة Asp.Net urlEncoding

StackOverflow https://stackoverflow.com/questions/638422

  •  10-07-2019
  •  | 
  •  

سؤال

وأنا باستخدام خدمة ويب لتمرير المعلومات من مجموعة من صفحات .ASP القديمة إلى قاعدة البيانات. المشكلة هي أن استخدام httpGet، ولست بحاجة لتشفير المعلومات بحيث يمكن مرت بسلام.

وتعمل كل شيء وكأنه حلم، باستثناء حقيقة أن خطابات الاسكندنافية مثل ö ألف وعلى سبيل المثال يخرج كمربعات. الآن أنا لا أعرف حتى ما إذا كان هذا له علاقة مع إعدادات اللغة IIS شركة (لا يمكن الاقتراب منها) أو شيء من هذا، ولكن أنا أتساءل عما اذا كان هناك طريقة لإجبار آسيا والمحيط الهادئ الصفحات لاستخدام ترميز معينة، و ثم فرض خدمة asp.net على شبكة الإنترنت للفك مع نفس الحرف مجموعة، <م> بدون أي نوع من إعدادات الخادم في المنتصف الحصول على فرصة لخلط كل شيء؟

وحاولت أن ننظر حولنا، لكنها لم تجد أي أمثلة واضحة بالضبط كيف يمكنك أن تفعل هذا. الرجاء الحفاظ على ردود بسيطة، وأنا مجرد مبتدئ في التدريب هنا. شكرا للمساعدة!

تعديل: اعتذارات. لم تتضمن رمز لأنه كان في غاية البساطة لم أكن أعتقد انها تريد ان تكشف عن أي شيء على أي حال. هنا:

و.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

وعلى أي حال، وذلك بفضل لطلب المساعدة. سأكون تبحث في هذا أكثر ولكن كالمعتاد، التوتر والاندفاع يجبر لي للمضي قدما. كتبت رمز بسيط لتشفير الرسائل الاسكندنافية الأكثر استخداما يدويا، وفك شفرة لهم في خادم الويب. يعمل بشكل جيد حتى الآن، وآمل فقط لا توجد أي مضاعفات يغير جرا. أردت فقط الحروف الفنلندية الأساسية لذلك، ö، وعلى أي حال. :)

وأنا بس كان هناك بعض طريقة سهلة لإجبار الترميز إلى محارف محدد أنا فقط لا يمكن أن تجد. تميل إلى أن تكون رهيبة في العثور على المعلومات وحدي.

هل كانت مفيدة؟

المحلول

وبدون حفر في التعليمات البرمجية، لا أستطيع أن أعطيك "هنا كان على خط X" الجواب، ولكن المشكلة التي تتعامل مع واحد من الترميز. هناك طرق متعددة من سلاسل الترميز، من ASCII إلى UTF-8 إلى Unicode في مهب كامل. ما يعنيه هذا هو Ifforcing ترميز يونيكود الكامل قد يحل مشكلتك.

لذلك، يمكنك إنشاء صراحة تيارات الخاص بك (و / أو القراء / الكتاب) مع الترميز. طريقة مختلفة لأنواع مختلفة من الكائنات، وعدم معرفة الشفرة الخاصة بك، لا أستطيع أن أعطيك جوابا صريحة.

ومع ASP، قد يكون لا يزال الحصول على القمامة، ولكن. و، فقد كان وقتا طويلا منذ أن لعبت مع ASP الكلاسيكية، وكنت أود أن يكون لحفر للحصول على الجواب هناك. لحسن الحظ، يبدو وكأنه لديك وسيلة لاختبار ASP لضمان الأحرف الصحيحة تأتي من خلال ذلك الاختبار. اذا كان يعمل، والتركيز على خدمة الإنترنت.

نصائح أخرى

وهذا السؤال الأخير الذي سألت يلقي مزيدا من الضوء على هذا النوع من القضية مع UrlEncoding:

/ الأسئلة / 696659 / لماذا هو بين هذا الظهور في وبلدي ج -strings-194163

قد يكون مفيدا لنفسك أو الآخرين ضرب هذه المشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top