#!/usr/local/bin/python import cgi import cgitb cgitb.enable() import xriescape import re def convertref(ref): ref=ref.group(0) if (ref[2] <> 'x'): # hex version dec=ref[2:-1] val=int(dec) else: val=int(ref[3:-1], 16) hexval = "%.4x" % val return ("\u"+hexval).decode('unicode_escape') def convertesc(esc): esc=esc.group(0) val=ord(esc[0]) hexval= "%.4x" % val return ("\u"+hexval).decode('unicode_escape').encode('utf-8') form=cgi.FieldStorage() if (form.has_key("idna") and form["idna"].value=="1"): idna=True else: idna=False xri=form["xri"].value if (not xri.startswith("xri://")): xri="xri://"+xri #xri=re.sub(r'[\x80-\xff]', convertesc, xri) xri=unicode(xri,'utf-8') xri=re.sub("(((x[\da-fA-F]+)|(\d+));)", convertref,xri) print "Content-Type: text/html;charset=utf-8\n\n" print "