Я пишу XML, который будет катушкой для формы PostScript.Исправить кодировку символов в XML
Всякий раз, когда человек вставляет символ EN DASH (вероятно, скопировано формы MS Word), я получаю offending command: xmlerror. Stack: unicode not supported yet ....
http://www.fileformat.info/info/unicode/char/2013/index.htm
Соответствующая часть кодов:
$xml = new SimpleXMLElement('<xml/>');
foreach($_POST as $key => $value) {
$xml->$key = $value:
}
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml->asXML());
$nombreArchivoTemporal = '/tmp/'.time().rand();
$archivo = fopen ($nombreArchivoTemporal, "wb");
fwrite ($archivo, iconv('UTF-8', 'CP1252//TRANSLIT//IGNORE', "@PBSSFORM DNDA\n" . $dom->saveXML()));
fclose ($archivo);
Дело в том, что поддерживаются ÄËÏÖÜáéíóú, etc
, но EN DASH
и, возможно, другие нет. Я пытаюсь избавиться от них с помощью функции iconv
, но, кажется, не работает, так как персонаж уже HTML-объект кодируется, когда я вставляю в $xml
:
<?xml version="1.0"?>
<xml>
<date/>
<tituloObra>áéíóúÁÉÍÓÚäëïöüÄËÏÖÜ – <= guión</tituloObra>
–
является проблематичность.