XML ayrıştırıcısı: Metin içeriğinde geçersiz karakter bulundu

Bu makale, Microsoft XML ayrıştırıcısını (MSXML) kullanarak özel karakterler içeren Genişletilebilir Biçimlendirme Dili'ni (XML) ayrıştırdığınızda oluşan hataları çözmenize yardımcı olur.

Orijinal ürün sürümü: .NET Framework
Özgün KB numarası: 238833

Belirti

Microsoft XML ayrıştırıcısını (MSXML) kullanarak özel karakterler içeren XML'yi ayrıştırdığınızda, ayrıştırıcı ilk özel karakterin satırında ve konumunda aşağıdaki hata iletisini bildirebilir:

Metin içeriğinde Geçersiz bir karakter bulundu.

Neden

XML belgesi doğru karakter kodlama düzeniyle işaretlenmez.

Çözüm

  • XML işleme yönergesinde uygun kodlama düzenini belirtin.
  • XML verilerini uygun UTF-8 olarak yeniden kodlar.

Durum

Bu davranış tasarımdan kaynaklanır.

Daha fazla bilgi

Özel karakter, aksanlı Latin karakterler, umlautlar veya diğer aksanlar gibi 0x00 - 0x7F standart Amerikan Standart Değişim Kodu (ASCII) karakter kümesi aralığının dışındaki herhangi bir karakteri ifade eder. XML belgeleri için varsayılan kodlama düzeni UTF-8'dir ve ASCII karakterlerini diğer standart kodlama düzenlerinden farklı 0x80 veya daha yüksek bir değerle kodlar.

Çoğu zaman, basit iso-8859-1 kodlama şemasını kullanan verilerle çalışıyorsanız bu sorunu görürsünüz. Bu durumda, en hızlı çözüm genellikle Çözüm bölümünde önce listelenen ilk çözümdür. Örneğin, aşağıdaki XML bildirimini kullanın:

<?xml version="1.0" encoding="iso-8859-1" ?>
<rootelement>
    ...XML data...
</rootelement>

Bunun yerine, sayısal varlık başvurularını kullanarak bu karakterlerin her birini kodlayabilirsiniz. Örneğin, á özel karakterini alabilir, (ondalık sürüm) veya <test>&#x00E1;</test> (onaltılık sürüm) kullanabilirsiniz <test> &#225;</test> .