Salah satu sebab mengapa anda mungkin tidak mahu menggunakan StringWriter untuk siri objek adalah kerana ia tidak membenarkan anda menetapkan pengekodan yang diiklankan secara lalai. Ini boleh membawa kepada masalah semasa menulis dokumen XML pada fail, kerana fail itu perlu dikodkan dalam pengekodan yang diiklankan tetapi salah.
Untuk menyelesaikannya masalah, anda boleh menggunakan kelas tersuai seperti berikut:
public sealed class StringWriterWithEncoding : StringWriter { public override Encoding Encoding { get; } public StringWriterWithEncoding (Encoding encoding) { Encoding = encoding; } }
Kelas ini membolehkan anda menentukan pengekodan semasa mencipta StringWriter, memastikan pengekodan yang betul diiklankan.
Jika anda hanya memerlukan pengekodan UTF-8, anda boleh menggunakan versi ringkas kelas:
public sealed class Utf8StringWriter : StringWriter { public override Encoding Encoding => Encoding.UTF8; }
Jika anda menghadapi masalah memasukkan XML ke dalam pangkalan data SQL Server 2005, semak untuk berikut:
Jika anda masih mengalami masalah, berikan butiran lanjut tentang mesej ralat yang anda terima.
Atas ialah kandungan terperinci Patutkah Saya Menggunakan StringWriter untuk Pensirilan XML, dan Jika Tidak, Apakah Alternatif yang Lebih Baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!