## Using Combining Sequences for Numbers

Today I just happened to be looking through some of the precomposed Unicode circled numbers, numbers like ①, ②, ③, and so on. Just in case your system, doesn’t support the fonts for these characters, here’s an image that shows what I mean:

I wasn’t all that surprised to see these *CIRCLED DIGIT ZERO, **CIRCLED DIGIT ONE*, *CIRCLED DIGIT TWO*, through *CIRCLED DIGIT NINE* characters. However, I **was** surprised to see precomposed characters for other numbers, numbers all the way up to 50:

CIRCLED NUMBER FIFTY

Why stop at 50? Well, obviously Unicode can’t encode *every* number. Although Unicode doesn’t define a CIRCLED NUMBER FIFTY ONE, how can I create this using combining sequences? For example, for the above single digits, I have a couple options for displaying these:

- a precomposed character like U+2460 — ①
- a combining sequence like U+0031 U+20DD — 1⃝ the digit 1 followed by the COMBINING ENCLOSING CIRCLE character ⃝

Again, if you can’t see that character sequence, here’s the image of U+0031 U+20DD:

Alright, so there we have a great example of using two Unicode code points together to form a single visual glyph on-screen. But how do I get the COMBINING ENCLOSING CIRCLE character to combine over *two* previous digits? What if there were not a precomposed CIRCLED NUMBER FIFTY ONE? There’s isn’t one, by the way. And yet I want to enclose two or more arbitrary digits with the COMBINING ENCLOSING CIRCLE character. Hmmm….

Sigh…. I have to admit that I don’t actually know how to do this. I suspect that I can use some of Unicode’s control characters like START OF GUARDED AREA and END OF GUARDED AREA or …. I don’t really know.

When I find out, I’ll repost. If you know, please share!