Tenemos una aplicación que toma una cadena de texto ingresada por un usuario en un formulario web y lo empaqueta en XML. Para confundir un poco las cosas, el XML se envía como el cuerpo del mensaje de correo electrónico de Outlook.UTF-8 o ISO-8859-1 en XML
Como los usuarios pueden pegar casi cualquier cosa en el formulario web (generalmente de Word), la cadena de texto puede contener caracteres que no sean ASCII (7 bits) como los utilizados para abrir y cerrar comillas dobles.
La cadena viaja intacta por correo electrónico, pero cuando utilizamos el analizador XML de Microsoft, se queja (bastante correctamente) de que el XML contiene caracteres no válidos.
Una solución rápida es poner encoding = "iso-8859-1" en el encabezado. Sin embargo, me pregunto si sería mejor codificar el archivo XML en formato UTF-8 verdadero al principio, ya que he leído artículos que afirman que sería mejor para un mundo más armonioso si cada documento XML estuviera codificado en UTF-8. ?
Pero ... ¿vamos a tener problemas ya que el documento XML se está transfiriendo realmente a través del cuerpo de un mensaje de correo electrónico? Entiendo que UTF-8 es un sistema de codificación de longitud de bytes variable, supongo que utilizar 7 bits ASCII y caracteres de escapismo para indicar "hay más datos".
Otra opción es establecer a UTF-8 pero reemplazar caracteres no ASCII con el & #nnn; formato.
Cualquier consejo sobre esta área bastante complicada apreciada.
Cheers, Rob.
En realidad, la idea de usar & # no es buena, mientras que el documento se abre correctamente, no se muestra correctamente en IE. Las comillas abrir/cerrar se muestran como un bloque. –
El "bloque" indica que la fuente que se está utilizando no tiene un glifo disponible para mostrar el carácter. – andynormancx
ISO 8859-1 no tiene esas citas "inteligentes". Entonces, lo que sucederá es que los bytes que representan esas citas inteligentes terminan como caracteres aleatorios de otros ISO-8859-1, p. "texto citado". UTF-8 es seguro. – MSalters