Я пытаюсь записать некоторый контент в файл XML, но у меня есть проблемы со специальными символами.
Содержимое, которое я хотел бы написать, передается в сценарий через $_GET
, поэтому я предполагаю, что оно правильно декодировано в содержимое UTF-8.
$write = $_GET['content'];
будет кормиться как:
file.php?content=s%F6per
В PHP я делаю следующее:
$xml = simplexml_load_file('file.xml');
$newentry = $xml -> addChild('element',$write);
$xml -> asXML($xml_filename);
Открываемый файл XML имеет кодировку UTF-8. Когда я пишу контент без этих «проблемных символов», asXML снова сохраняет файл в UTF-8. Как только я вставляю специальные символы, он сохраняется в кодировке ANSI, что приводит к путанице в файле, поскольку я больше не смогу его открыть (скрипт будет жаловаться на неправильное кодирование).
Что мне не хватает? Чтение руководства создает у меня впечатление, что я должен делать все хорошо (то есть не вмешиваться в $_GET['content']
), поэтому я, к сожалению, понятия не имею.
Большое спасибо!