2010-09-27 22 views
5
  1. <div id="a">°F</div>
  2. $.get("http://blah.com/go",{'TU':$('#a').text()});
  3. registros del servidor IIS muestran los siguientes params:
    99,5% del tiempo: TU =% C2% B0F
    0,5% del tiempo: TU =% C2% B0 + F
  4. servidor falla posteriormente porque no sabe qué es '° F'. Es cierto que uno de los defectos es que estamos sacando texto del DOM & enviándolo a nuestro servidor. Aquí es donde sospecho que el problema es, pero me gustaría entender más.

Otra información: el 0.5% de las veces ha sido IE8 & Chrome. Todas las IP se geolocalizaron en Colombia, lo que hace que parezca un problema local, pero no hemos podido replicarlo.codificación HTML ° grado símbolo espacio extra

Ideas ??

Respuesta

1

El problema es que a veces hay un espacio entre el ° y el F, ese espacio se traduce a +, y el servidor no lo acepta? Si es así, ¿por qué no quita el espacio antes de enviarlo?

$.get("http://blah.com/go",{'TU':$('#a').text().replace(' ', '')}); 
// Or a more granular fix 
$.get("http://blah.com/go",{'TU':$('#a').text().replace(/°\sF/, '°F')}); 
+0

Sí. También podría hacerlo en el servicio. Tengo más curiosidad sobre por qué y de dónde viene el espacio. – Zac

0

¿Cómo se está poniendo el texto en el div? Deberías generarlo antes de verificar el valor del servidor. No creo que sea probable que obtenga una codificación diferente del mismo texto. Probablemente tenga algo que ver con cómo lo está poniendo en la página.

También intente configurar la codificación de página en el servidor antes de obtener la cadena de consulta, podría ser que diferentes navegadores están utilizando una codificación diferente. UTF-8 es la codificación sugerida por w3.org. En Java, debe asegurarse de configurar la codificación antes de cualquier llamada para leer algo del cliente.

Cuestiones relacionadas