XMLReader kodlama hatası

3 Cevap php

Ben büyük bir XML dosyasını ayrıştırmak için çalışan bir PHP komut dosyası var. Bunun için ben XMLReader kitaplığı kullanıyorum. Ayrıştırma sırasında ben bu kodlama hatası var:

Giriş, UTF-8 uygun değil kodlamayı göstermek! Bit: 0xA0 0x32 0x36 0x30

Ben onlar kötü karakterler ile kayıtları atlamak için bir yol olup olmadığını bilmek istiyorum.

Teşekkürler!

3 Cevap

Ben XMLReader size anlattıklarını dinlemek istiyorsunuz. Birçok kodlamaları ASCII supersetleri olduğunu unutmayın, bu yüzden (örneğin) UTF-8 ve ISO-8859-1 ilk 128 kod noktaları için ASCII aynıdır. Biliyorsunuz dosya gerçekten ISO-8859-1 olarak kodlanmış olabilir, ama hemen hemen tüm karakterlerin bu karakter kümesinin alt, ASCII yarısına aittir. Bu durumda, hata, XML için varsayılan kodlamayı UTF-8 kullanmak için icar sizin olacaktır.

ISO-8859-1 byte dizisi 0xA0 0x32 0x36 0x30 mükemmel geçerlidir: '2 ardından bölünemez boşluk ', '6', '0 '.

XML dosyası gerçekten basit bir yapısı varsa, olabilir "önfiltre" it kurtulmak (hatta daha iyi, doğru) almak için yanlış kayıtlar.

Kayıtlarının o kayıt okumak ve filtrelenmiş bir xml dosyası yazmak, sonra süzülür dosyayı işlemek.