Yani XML dosyaları bir dizi var, başlamak için. Bu dosyalar iterated ve bazı 'tanınmayan' onaltılık karakterleri için kontrol ve normal UTF-8 metin veya yer tutucu çeşit ile değiştirilmesi gerekir.
Ben dosyaları yineleme ve hayır şans ile str_replace ve preg_replace ikisini de kullanarak hex kodlarını değiştirerek denedim. Benim nihai problemi, SimpleXML ile bu dosyaları açmaya çalışırken ben 'non-utf karakterler' hakkında hataları alıyorum olduğunu.
İşte ben bugüne kadar ne var:
class HexadecimalConverter {
public $filenames = array();
public function __construct($filenames) {
$this->filenames = $filenames;
$this->removeHex();
}
public function removeHex() {
foreach ($this->filenames as $key => $value) {
$contents = file_get_contents($value);
$contents = preg_replace("/\x96/", '–', $contents);
$contents = preg_replace("/\x97/", '—', $contents);
$contents = preg_replace("/\x85/", "...", $contents);
$contents = preg_replace("/\xBA/", "", $contents);
file_put_contents($value, $contents);
}
}
}
İşte düzeltmek için çalışıyorum hata: Warning: simplexml_load_file () [function.simplexml-load-file]: ./04R_P455_S1157.xml: 5: ayrıştırıcı hatası: Input doğru UTF-8 değil, kodlamayı göstermek! Bit: C 0x97 0x0D 0x0A 0x69: \ xampp \ htdocs \ hint_updater \ \ hint_updater_classes.php kütüphaneler satırda 130
Hala hiçbir şans, Ben bu konuya önerilen her şeyi denedim, ama preg_replace hex kodunun tüm örneklerini yerine olmak görünmüyor.