Ho un semplice modulo che invia un'immagine al blobstore e un titolo per l'immagine. Funziona sul mio devserver locale ma quando distribuisco il mio codice, le lettere non ascii nel titolo diventano confuse con una specie di misto di ascii e hex. Ad esempio, Ísland diventa = CDsland. Nota, sto usando <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
come primo valore nell'intestazione. Anche utf-8 funziona per tutte le mie altre forme. Solo il modulo multipart che diventa confuso. In ogni modo questo è il mio modulo:Problema di codifica nel motore di app durante l'invio di moduli multipart/form-data
<form action="{{ uploadurl }}" enctype="multipart/form-data" method="post">
<div><label>Title</label><input type="text" name="title" class="string" /></div>
<div><label>Picture</label><input type="file" name="img"/></div>
<div style="margin-top:10px;"><input type="submit" value="Add picture" /></div>
<input type="hidden" value="{{ album.key }}" name="alid"/>
</form>
E questa è la manipolazione del modulo di classe:
# handler for posting photos
class PostPhoto(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload_files = self.get_uploads('img')
photourl = images.get_serving_url(str(upload_files[0].key()))
photo = Photo()
#because of multipart/form-data
photo.title = self.request.get("title")
photo.photourl = photourl
photo.photoalbum = PhotoAlbum.get(self.request.get('alid'))
photo.put()
Qualcuno ha idea di come posso risolvere questo problema? Devo eseguire qualche codifica/decodifica sul lato server? Ho provato a googling per quello senza risultati (python newb), quindi questa è la mia ultima risorsa prima di modificare il mio design e dividere i moduli.
Cosa stai usando per determinare ciò che il titolo si trova sul server? E funziona se pubblichi direttamente su un gestore, senza usare blobstore? –
Che il tag del tipo meta contenuto sia presente nella parte superiore della testina HTML è completamente irrevante ogni volta che la tua pagina web viene pubblicata su HTTP. Un webbrowser un po 'discreto utilizzerà invece quello nell'intestazione della risposta HTTP. Vedi anche w3 spec http://www.w3.org/TR/html4/charset.html#h-5.2.2 – BalusC
Per ora l'appegine SDK 1.7.2 non è ancora stato risolto ma il comportamento della produzione è leggermente cambiato: 'Ísland 'diventa' zXNsYW5k '. unicode (base64.b64decode ('zXNsYW5k'), 'iso_8859-2') – keiw