<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><BR><DIV><DIV>On Apr 25, 2005, at 9:23 PM, Rene Dudfield wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">repr works quite well, and I've used it with lots of different</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">javascript... However I'm not completely confident in it as it fails</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">for unicode.</FONT></P></BLOCKQUOTE><BR></DIV><DIV>Ah, unicode, yes. Nevow handles unicode at a different abstraction level, in the main flatten loop, nevow.flat.ten.iterflatten. It encodes to utf-8 by default.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Nevow's flattening process does a very good job of ensuring the right quoting takes place in the right context. With a little bit of tweaking, perhaps this core conversion from python data structures to correctly encoded bytes for transmission over the wire could be broken out from Nevow so other projects could benefit from it.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Quoting is so difficult to get right that if many people reimplement quoting, some of the implementations are sure to be wrong simply because there are so many corner cases. It seems like this might be one area where it would be both beneficial and possible to share code between Python web frameworks.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>dp</DIV><DIV><BR class="khtml-block-placeholder"></DIV></BODY></HTML>