Error del analizador XML: entidad no definida

He buscado stackoverflow en este problema y encontré algunos temas, pero siento que realmente no hay una respuesta sólida para mí.

Tengo un formulario que los usuarios envían y el valor del campo se almacena en un archivo XML. El XML está configurado para codificarse con UTF-8.

De vez en cuando, un usuario copiará / pegará texto de algún lugar y es cuando obtengo el "error de entidad no definida".

Me doy cuenta de que XML solo admite unas pocas entidades seleccionadas y no se reconoce nada más allá de eso, de ahí el error del analizador.

Por lo que deduzco, hay algunas opciones que he visto:

Puedo encontrar y reemplazar todo  y cambiarlos con  o un espacio real.Puedo colocar el código en cuestión dentro de una sección CDATA.Puedo incluir estas entidades dentro del archivo XML.

Lo que estoy haciendo con el archivo XML es que el usuario puede ingresar contenido en un formulario, se almacena en un archivo XML y ese contenido se muestra como XHTML en una página web (analizado con SimpleXML).

De las tres opciones, o cualquier otra opción que no conozco, ¿cuál es realmente la mejor manera de tratar con estas entidades?

Gracias Ryan

ACTUALIZAR

Quiero agradecer a todos por los excelentes comentarios. De hecho, determiné qué causó los errores de mi entidad. ¡Todas las sugerencias me hicieron analizarlo más profundamente!

Algunos cuadros de texto eran simples cuadros de texto antiguos, pero mis áreas de texto se mejoraron con TinyMCE. Resulta, mientras mira más de cerca, que las advertencias de PHP siempre hacían referencia a datos de las áreas de texto mejoradas de TinyMCE. Más tarde, noté en una PC que todos los caracteres fueron eliminados (porque no podía leerlos), pero en un MAC se podían ver pequeñas cajas cuadradas que hacen referencia al número Unicode de ese personaje. La razón por la que apareció en cuadrados en un MAC en primer lugar, es porque usé utf8_encode para codificar datos que no estaban en UTF para evitar otros errores de análisis (que de alguna manera también está relacionado con TinyMCE).

La solución a todo esto fue bastante simple:

Agregué esta líneaentity_encoding : "utf-8" en mi tinyMCE.init. Ahora, todos los personajes aparecen como se supone que deben hacerlo.

Supongo que lo único que no entiendo es por qué los caracteres aún aparecen cuando se colocan en cuadros de texto, porque nada los convierte a UTF, pero con TinyMCE fue un problema.

Respuestas a la pregunta(5)

Su respuesta a la pregunta