Я оглянулся и не могу найти решение, так что вот оно.
У меня есть следующий код:
$file = "adhddrugs.xml";
$xmlstr = simplexml_load_file($file);
echo $xmlstr->report_description;
Это простая версия, но даже пробуя это, любые апострофы превращаются в: ^ a (знак евро) знак товарного знака.
Вещи, которые я пробовал:
echo = (string)$xmlstr->report_description; /* did not work */
echo = addslashes($xmlstr->report_description); /* yes I know this doesnt work with hyphens, was mainly trying to see if I could escape the apostrophes */
echo = addslashes((string)$xmlstr->report_description); /* did not work */
также htmlspecial (опять же, я знаю, что не работает с дефисами), htmlentities и несколько других трюков.
Ситуация такова, что я получаю файлы XML из канала, поэтому я не могу их изменить, но они довольно стандартные.Текст с дефисами и т. Д. Инкапсулируется в тег cdata, а кодировка - UTF-8.Если я проверю источник, мне будут показаны дефисы и апострофы в источнике.
Теперь, чтобы посмотреть, была ли кодировка выключена или неправильно маркирована, или что-то еще странное, я попытался просмотреть необработанный XML-файл и убедиться, что он отображается правильно.
Я уверен, что, пытаясь найти ответ, я упустил из виду нечто простое, и тот факт, что я впервые использую SimpleXML, действительно не хватает очень простого решения.Только не приставайте ко мне за это, я действительно пытался найти ответ самостоятельно.
Еще раз спасибо.