taken from my safeclib (MIT licensed) and cross-checked with the perl unicode tables