Soy un novato de los asuntos relacionados con HTTP. Mi pregunta es en el desarrollo de iOS, me gustaría enviar una cadena usando encabezado HTTP, por lo que estoy usando:Cómo enviar una cadena Unicode que no esté en inglés usando el encabezado HTTP?
servidor[httpRequest setValue:@"nonEnglishString" forHTTPHeaderField:@"customHeader"];
La recepción es Python (Google App Engine), ahorrando el valor de cadena en el PP modelo como StringProperty usando:
dataEntityInstance.nonEnglishString = unicode(self.request.headers.get('customHeader')
sin embargo, el problema es cuando intento enviar cadena no Inglés como Corea, se guarda en el encabezado HTTP como esto:
Customheader = "\Uc8fc\Uba39\Uc774 \Uc6b4\Ub2e4";
y cuando es recibida por Google App Engine y se guarda en almacén de datos, que ha cambiado para ser como:
??? ??
como si no puede encontrar los caracteres apropiados para el valor Unicode.
¿No es POSIBLE o PERMITIDO enviar una cadena que no esté en inglés utilizando el encabezado HTTP?
Si mi iOS usa solo setHTTPBody, puede transferir cadenas que no sean en inglés y guardarlas en DataStore de App Engine correctamente.
[httpRequest setHTTPBody:[httpBody dataUsingEncoding:NSUTF8StringEncoding]];
Pero simplemente no puedo encontrar el camino correcto para lograr la misma meta usando encabezados HTTP, como lo que muchas API como tareas de Foursquare y ahorro de las cadenas en las formas apropiadas en Python basadas almacén de datos de Google App Engine
¿Qué quiere decir con * (...) esto no tiene sentido, dadas las definiciones de cuándo están permitidas en RFC2047 (...) *? –
RFC 2047 sección 5 establece que las palabras codificadas pueden ir donde RFC 822 'texto', 'comentario' y 'frase' van, pero RFC 2616 no es un estándar de la familia RFC 822 y no tiene tokens que coincidan. (Hay un token de TEXTO pero no se define de la misma manera). Establece explícitamente que no deben ir en una 'cadena citada'; hay un token de "cadena citada" muy similar definido en RFC 2616 y ese es el único lugar donde más se quiere poner en práctica caracteres que no sean ASCII (debido a Content-Disposition y encabezados con parámetros similares). – bobince
De todos modos, desde una perspectiva de estándares esto ya está aclarado: RFC 5987 proporciona una forma estándar de codificar no ASCII en encabezados parametrizados, y RFC 7230 recomienda que los encabezados no heredados sean ASCII. – bobince