سؤال

نحن نستخدم خدمة ويب التي يتوقع UTF-8.إطار نستخدمها على العميل أباتشي Axis2.ونحن استدعاء خدمة ويب و الصابون الجسم يحتوي على السلاسل في UTF-8.المشكلة هو أنه يبدو مثل الجسد هو "ضعف المشفرة".I. e لدينا الحرف 'å'.Utf-8 تمثيل 'å' في utf-8 هو C3 A5 ومع ذلك نرى في سجلاتنا أن (مزدوجة) قيمة المشفرة المرسلة هو C3 83 C2 A5.

وقد أي شخص من ذوي الخبرة مشابهة مشاكل ؟

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

المحلول

ليس واضحا تماما كيف كنت استدعاء خدمة ويب.هل أسلوب خدمة ويب فقط اتخاذ سلسلة ؟ إذا ماذا سلسلة الخاص بك تبدو في جافا ؟ جميع السلاسل في جافا هي ترميز UTF-16 - إذا كنت تحويل UTF-8 تمثيل ثنائي في سلسلة بأخذ كل بايت وتحويله إلى حرف ، ثم هذه هي المشكلة.

إذا كنت يمكن أن تظهر ما طريقة انك تتصل يبدو ، كيف أنت تدعو عليه ، وهذا من شأنه أن يساعد كثيرا.

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

تحرير:بناء على تعليقك يبدو أنك قد حصلت مشاكل في تلقي HTML استمارة بيانات قبل أن تصل إلى خدمة ويب.إذا قام المستخدم بكتابة "å" في النموذج ، ثم هذا ما يجب أن تشاهد عند تصحيح في الكسوف.إذا كنت في وضع سيء البيانات إلى خدمة الويب الخاص بك ، فلا عجب أنك تحصل على البيانات السيئة في الآخر.أقترح عليك تشغيل يريشارك أن ترى بالضبط ما المتصفح يرسل لك سواء من حيث الخام بايت و أيضا ما هي ترميز المحتوى هو تحديد.تخميني هو أن خادم الويب الخاص بك هو علاج أنها ISO-8859-1 لكنه في الواقع UTF-8.

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

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