نقل أحرف ascii الموسعة بتشفير غير معروف إلى Twisted XMLRPC من C#
سؤال
أريد بشكل أساسي تمرير سلسلة تحتوي على نص إسباني يمكن أن يكون في أحد الترميزات المتعددة (Latin-1 أو CP-1252 أو UTF-8 على سبيل المثال لا الحصر).بمجرد وصوله إلى XMLRPC يمكنني اكتشاف التشفير، لكنني لن أعرفه قبل ذلك الحين.يبدو أن C#، بشكل افتراضي، تقتل أي أحرف خارج ASCII.لقد تغلبت على المشكلة عن طريق ترميز السلسلة باستخدام Base64 ولكني أحب حقًا عدم القيام بذلك.
أنا أستخدم CookComputing.XmlRpc...إليك مقتطف التعليمات البرمجية للواجهة الخاصة بي:
public interface ISpanishAnalyzer
{
[XmlRpcMethod("analyzeSpanishString")]
int analyzeSpanishString(string text);
}
سيكون موضع تقدير أي مساعدة.شكرًا!
المحلول
لا أعتقد أن هناك حقًا طريقة أفضل من تشفير Base64.طالما أنك لا تعرف التشفير، فليس لديك أي إمكانية أخرى للتعامل معه كمصفوفة بايت.التغيير الوحيد الذي أقترحه هو توضيح ذلك باستخدام معلمة byte[] بدلاً من سلسلة والسماح لمكتبة XmlRpc بالاهتمام بتشفير base64 (على افتراض أنها تدعم هذا).