Thanks! It works now. For others reading this thread, the code now reads: class Person(db.model): name = db.ByteString() description = db.BlobProperty()
class PersonHandler(webapp.RequestHandler): def get(self): pers = Person() pers.name = encrypt_data(self.request.get('name')) pers.description = encrypt_data(self.request.get('description')) pers.put() def encrypt_data(plaintext): obj=ARC4.new(RSAPrivateKey()) return obj.encrypt(plaintext) def decrypt_data(ciphertext): obj=ARC4.new(RSAPrivateKey()) return obj.decrypt(ciphertext) On Mar 23, 1:12 pm, Geoffrey Spear <geoffsp...@gmail.com> wrote: > I can't imagine why this would work on the dev server (might be a > locale setting on your local machine that makes unicode() somehow use > an encoding that works), but from what I can tell, an ARC4 > object's .encrypt() method isn't producing encoded unicode, so > coercing it to unicode (either without specifying an encoding or with > one) should fail spectacularly. Use a db.BlobProperty to store binary > data, rather than trying to convert it to unicode and storing it as > text. > > On Mar 22, 7:51 pm, Kwame <iweg...@gmail.com> wrote: > > > > > > > > > Sure Geoffrey. Sorry about that. > > > class Person(db.model): > > name = db.StringProperty() > > description = db.TextProperty() > > > class PersonHandler(webapp.RequestHandler): > > def get(self): > > pers = Person() > > pers.name = unicode(encrypt_data(self.request.get('name'))) > > pers.description = > > unicode(encrypt_data(self.request.get('description'))) > > pers.put() > > > def encrypt_data(plaintext): > > obj=ARC4.new(RSAPrivateKey()) > > return obj.encrypt(plaintext) > > > def decrypt_data(ciphertext): > > obj=ARC4.new(RSAPrivateKey()) > > return obj.decrypt(ciphertext) > > > #======================================================== > > > This code properly encrypts/decrypts the webapp request variables and > > stores into the Person Object while running on the localhost Dev > > server, but on the Deployed app, it throws a UnicodeDecodeError. I've > > also tried: > > > unicode(encrypt_data(self.request.get('description'))).encode('utf-8') > > but that fails on both servers > > > On Mar 22, 1:25 pm, Geoffrey Spear <geoffsp...@gmail.com> wrote: > > > > On Mar 22, 12:45 pm, Kwame <iweg...@gmail.com> wrote: > > > > > 'ascii' codec can't decode byte 0x8a in position 2: ordinal not in > > > > range(128) > > > > > I've read so many solutions about this problem, even Nick's > > > > Blog:http://blog.notdot.net/2010/07/Getting-unicode-right-in-Python > > > > > ...which addresses the problem very well. So I've been able to resolve > > > > this unicode issue on GAE devserver, however I continue to experience > > > > it on my live deployed version. This makes no sense to me. Can anyone > > > > help?? > > > > Without seeing your code, almost certainly not. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.