##// END OF EJS Templates
encoding: change jsonmap to a list indexed by code point...
Yuya Nishihara -
r28066:d1cc0712 default
parent child Browse files
Show More
@@ -378,7 +378,7 class normcasespecs(object):
378 378 upper = 1
379 379 other = 0
380 380
381 _jsonmap = {}
381 _jsonmap = []
382 382
383 383 def jsonescape(s):
384 384 '''returns a string suitable for JSON
@@ -408,21 +408,18 def jsonescape(s):
408 408 '''
409 409
410 410 if not _jsonmap:
411 for x in xrange(32):
412 _jsonmap[chr(x)] = "\\u%04x" % x
413 for x in xrange(32, 256):
414 c = chr(x)
415 _jsonmap[c] = c
416 _jsonmap['\x7f'] = '\\u007f'
417 _jsonmap['\t'] = '\\t'
418 _jsonmap['\n'] = '\\n'
419 _jsonmap['\"'] = '\\"'
420 _jsonmap['\\'] = '\\\\'
421 _jsonmap['\b'] = '\\b'
422 _jsonmap['\f'] = '\\f'
423 _jsonmap['\r'] = '\\r'
411 _jsonmap.extend("\\u%04x" % x for x in xrange(32))
412 _jsonmap.extend(chr(x) for x in xrange(32, 256))
413 _jsonmap[0x7f] = '\\u007f'
414 _jsonmap[0x09] = '\\t'
415 _jsonmap[0x0a] = '\\n'
416 _jsonmap[0x22] = '\\"'
417 _jsonmap[0x5c] = '\\\\'
418 _jsonmap[0x08] = '\\b'
419 _jsonmap[0x0c] = '\\f'
420 _jsonmap[0x0d] = '\\r'
424 421
425 return ''.join(_jsonmap[c] for c in toutf8b(s))
422 return ''.join(_jsonmap[x] for x in bytearray(toutf8b(s)))
426 423
427 424 _utf8len = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 4]
428 425
General Comments 0
You need to be logged in to leave comments. Login now