2010-04-21 26 views
6

Python'da (2.x) base-256 bytestrings olarak üretilen bazı ikili verilerim var. Bunları, dizindeki her bayt (char) sıra değerini koruyan JavaScript’e okumalıyım. Dilleri karıştırmama izin verirseniz, Python'da bir s dizesini, JavaScript’e tekrar okuduktan sonra ord(s[i]) == s.charCodeAt(i) kodlamasını yapmak istiyorum.Python bytestrings'ı JSON'a seri hale getirme, sıralı karakter değerlerini koruyarak

Bunu yapmanın en temiz yolu, Python dizgimi JSON'a serileştirmek gibi görünüyor. Bununla birlikte,, ensure_ascii ve encoding parametreleriyle uğraşmasına rağmen, bytestrings'ımı beğenmez. Düzenli karakter değerlerini koruyan Unicode dizelerine bytestrings kodlamak için bir yolu var mı? Aksi halde ASCII aralığının üzerindeki karakterlerin JSON tarzı \u1234 kaçışlarına kodlanması gerektiğini düşünüyorum; ancak bunun gibi bir kodek, Python'un codecs arasında görünmüyor.

Python bytestrings'ı JSON'a serileştirmenin, char değerlerini korumanın veya kendi kodlayıcımı yazmamın kolay bir yolu var mı?

cevap

4

sıralı karakter değerlerini korur Unicode dizeleri bytestrings kodlamak için bir yolu var mı?

bayt -> Unicode dönüşüm decode değil encode olarak adlandırılır. Ama evet, iso-8859-1 gibi bir kodek ile kod çözme, gerçekten istediğiniz gibi "sıradan karakter değerlerini" korumalıdır.

+0

Eh; Bu oldukça basitti. Teşekkürler! –

3

Base64'ü kullanabilir misiniz? (Python base64 modülünde, Javascript'in birden çok uygulaması vardır, bunlardan biri here'dur.)

Verilerinizin hemen hemen tüm metni olmadıkça, çıkış ASCII veya UTF-8 kullanmanın bir nedeni yok.

İlgili konular