A critique of cgi.escape

Duncan Booth duncan.booth at invalid.invalid
Sun Oct 8 11:49:43 CEST 2006

Lawrence D'Oliveiro <ldo at geek-central.gen.new_zealand> wrote:

> Another useful function is this:
>     def JSString(Str) :
>         """returns a JavaScript string literal that evaluates to Str.
>         Note I'm not worrying about non-ASCII characters for now."""

Here is a shorter alternative that handles non-ASCII sequences provided you 
pass in unicode:

def JSString(s):
	return repr(unicode(s))[1:]

>>> print JSString(u"\u201chi there!\u201d")
'\u201chi there!\u201d'
>>> print JSString("Hello world")
'Hello world'
>>> print JSString("Hello 'world'")
"Hello 'world'"

For ascii strings you could also use the string-escape codec, but strangely 
the unicode-escape codec doesn't escape quotes.

More information about the Python-list mailing list