Я искал stackoverflow по этой проблеме и нашел несколько тем, но я чувствую, что на самом деле для меня нет надежного ответа.
У меня есть форма, которую пользователи представляют, и значение поля сохраняется в XML файле. XML задан для кодирования с помощью UTF-8.
Время от времени пользователь будет копировать/вставлять текст где-то и что когда я получаю "сущность, не определенную ошибку".
Я понимаю, что XML поддерживает только несколько сущностей, и все, что за ним не распознано, - следовательно, ошибка парсера.
Из того, что я собираю, есть несколько вариантов, которые я видел:
- Я могу найти и заменить все
и заменить их на 
или фактическое пространство. - Я могу разместить этот код в разделе CDATA.
- Я могу включить эти объекты в XML файл.
Что я делаю с XML файлом, так это то, что пользователь может вводить содержимое в форму, он хранится в XML файле, и этот контент затем отображается как XHTML на веб-странице (разбирается с SimpleXML).
Из трех параметров или любых других (-их) вариантов (-ов), о которых я не знаю, действительно лучший способ справиться с этими сущностями?
Спасибо, Райан
UPDATE
Я хочу поблагодарить всех за отличную обратную связь. Я фактически определил, что вызвало ошибки моего объекта. Все предложения заставили меня глубже изучить его.
Некоторые текстовые поля, где простые текстовые поля, но мои текстовые поля были расширены с помощью TinyMCE. Оказывается, при внимательном рассмотрении, что предупреждения PHP всегда ссылаются на данные из расширенных текстовых областей TinyMCE. Позже я заметил на ПК, что все персонажи были вывезены (потому что они не могли их прочитать), но на MAC вы могли видеть квадраты квадратов, ссылающиеся на номер юникода этого символа. Причина, по которой он проявился в квадратах на MAC, в первую очередь, заключается в том, что я использовал utf8_encode для кодирования данных, которые не были в UTF, чтобы предотвратить другие ошибки синтаксического анализа (что также связано с TinyMCE).
Решение для всего этого было довольно простым:
Я добавил эту строку entity_encoding : "utf-8"
в свой tinyMCE.init. Теперь все символы отображаются так, как они должны.
Я думаю, единственное, что я не понимаю, - это то, почему персонажи все еще появляются, когда помещаются в текстовые поля, потому что ничто не преобразует их в UTF, но с TinyMCE это проблема.