سؤال

لدي ملف XML حيث تكون بعض قيم العناصر عبارة عن أحرف Unicode.هل من الممكن تمثيل هذا في ترميز ANSI؟

على سبيل المثال

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

ل

<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>&#27544;</value>
</xml>

أقوم بإلغاء تسلسل XML ثم أحاول إجراء تسلسل له باستخدام XmlTextWriter مع تحديد التشفير الافتراضي (الافتراضي هو Windows-1252).تنتهي جميع أحرف Unicode كعلامات استفهام.أنا أستخدم VS 2008، C# 3.5

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

المحلول

حسنًا، لقد اختبرت ذلك باستخدام الكود التالي:

 string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><xml><value>受</value></xml>";

 XmlWriterSettings settings = new XmlWriterSettings { Encoding = Encoding.Default };
 MemoryStream ms = new MemoryStream();
 using (XmlWriter writer = XmlTextWriter.Create(ms, settings))
      XElement.Parse(xml).WriteTo(writer);

 string value = Encoding.Default.GetString(ms.ToArray());

وقد أفلت بشكل صحيح من حرف Unicode وبالتالي:

<?xml version="1.0" encoding="Windows-1252"?><xml><value>&#x53D7;</value></xml>

لا بد أنني أفعل شيئًا خاطئًا في مكان آخر.شكرا للمساعدة.

نصائح أخرى

إذا فهمت السؤال، فنعم.أنت فقط بحاجة إلى ; بعد 27544:

<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>&#27544;</value>
</xml>

أم أنك تتساءل عن كيفية إنشاء ملف XML هذا برمجيًا؟إذا كان الأمر كذلك، ما هي اللغة/البيئة التي تعمل فيها؟

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