Я имею дело со сторонним XML, который содержит специальные символы, такие как маркеры, длинные тире и т. Д.
Пример XML:
$xml = "<xml><node>• Special Characters</node></xml>";
Моя цель - проанализировать этот XML с помощью PHP и вставить его в базу данных MySQL. Я использую DomDocument
для анализа XML, чтобы получить объект SimpleXMLElement
из узла DOM, используя simplexml_import_dom
.
Метод загрузки DomDocument
завершается ошибкой, если я не использую utf8_encode для кодирования xml.
$doc = new DOMDocument();
$doc->loadXML(utf8_encode($xml));
Чтобы разобрать xml, я понимаю, что мне нужна функция utf8_encode
. После возможности анализа XML вставки в таблицу MySQL приведут к появлению специальных символов в виде? или мусор. Даже специальные символы из XML, если они отображаются в браузере после разбора, будут мусором.
Столбец таблицы MySQL имеет текстовый тип данных и находится в сопоставлении latin1_swedish_ci. Я видел похожие вопросы по SO и пробовал их решения, такие как запуск mysql_query('SET NAMES utf8')
или изменение кодировки столбцов, но они не работали для меня.
Пожалуйста, сообщите.