( Original text by @edent )
Unicode contains a range of symbols which don’t get much use. For example, there are separate symbols for TradeMark — ™, Service Mark — ℠, and Prescriptions — ℞.
Nestling among the «Letterlike Symbols» are two curious entries. Both of these are single characters:
- Telephone symbol — ℡
- Numero Sign — №
What’s interesting is both .tel and .no are Top-Level-Domains (TLD) on the Domain Name System (DNS).
So my contact site — https://edent.tel/ — can be written as — https://edent.℡/
And the Norwegian domain name registry NORID can be accessed at https://www.norid.№/
Copy and paste those links — they work in any browser!
Is this limited to TLDs?
No! This works ANYWHERE in a domain name. Copy and paste these examples:
- Script https://ℰ????????ℳ????ℒℰ.????????ℳ/
- Math Bold https://????????????????????????????.????????????/
- Fraktur https://????????????????????????????.????????????/
- Math bold italic https://????????????????????????????.????????????/
- Math bold script https://????????????????????????????.????????????/
- Double struck https://????????????????????????????.????????????/
- Monospace https://????????????????????????????.????????????/
- Super script https://ᵉˣᵃᵐᵖˡᵉ.ᶜᵒᵐ/
- Sub script https://ₑₓₐₘₚₗₑ.cₒₘ/ NB not all characters supported
- Math sans bold https://????????????????????????????.????????????/
- Math sans bold italic https://????????????????????????????.????????????/
- Math sans italic https://????????????????????????????.????????????/
- Math Squared https://????????????????????????????.????????????/ NB the dot must not be squared
- Circled https://ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ/ NB the dot must not be circled
There are a whole bunch more miscellaneous characters you can use:
How does this work?
Magic! Which is to say, I think it is the browser doing the conversion. DNS Servers don’t successfully reply to queries about .℡ domains.
The browser sees the .℡ and then follows the IDNA2008 process listed in RFC5895 to normalise it:
The ℡ entry is:
2121;TELEPHONE SIGN;So;0;ON;<compat> 0054 0045 004C;;;;N;T E L SYMBOL;;;;
U+0054 is T, U+0045 is E, U+004C is L.
You can test this in Python using:
python -c 'import sys;print sys.argv[1].decode("utf-8").encode("idna")' "℡"
Does this work?
Yes! I asked people on Twitter whether they could access my website using a .℡ — and it appeared to work on every modern browser and operating system.
It even works on command line tools like wget
and curl
.
It does fail in some circumstances:
What are the limitations?
Two main ones:
- Sites like Twitter and Facebook don’t recognise it as a valid URl and refuse to auto link it.
- Some command line tools like
dig
andhost
don’t understand it
dig edent.℡
; <<>> DiG 9.10.6 <<>> edent.℡
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 55282
Is this useful?
Obviously yes. This may be the most important discovery of the decade. You get cool looking URls and get to save a couple of characters on specific domains, at the minor expense of working inconsistently.
It could also be used for evading URl filters.
Every modern browser supports these «fancy» domain names — but most websites won’t automatically link to them. So sharing on Facebook doesn’t work.
Where can it be used?
Here are the single characters which can be normalised down to a valid TLD. They’re mostly country codes, but there are a few interesting exceptions:
㏕
— US Military℡
— .tel registry№
— Norway㍳
— Australia㍷
— Dominica㎀
— Panama㎁
— Namibia㎃
— Morocco㎊
— French Polynesia㎋
— Norfolk Island㎏
— Kyrgyzstan㎖
— Mali㎙
— Federated States of Micronesiafi
— Finland㎜
— Myanmar㎝
— Cameroon㎞
&㏎
— Comoros㎰
— Palestine㎳
— Montserrat㎷
&㎹
— Republic of Maldives.㎺
— Palau㎽
&㎿
— Malawi㏄
— Cocos (Keeling) Islands㏅
— Democratic Republic of Congo㏉
— Guyana㏗
— Philippines㏘
— Saint Pierre and Miquelon㏚
— Puerto Rico㏛
— Suriname㏜
— El Salvador℠
— San Marino™
— Turkmenistanst
&ſt
— São Tomé and Príncipe㎇
— Great Britain (Obsolete)ß
— South Sudan (Not available)㏌
— India and Indiana (subdomain of .us)Ⅵ
&ⅵ
— Virgin Islands and Virginia (subdomain of .us)fl
— Florida (subdomain of .us)㎚
— New Mexico (subdomain of .us)㎵
— Nevada (subdomain of .us)㍵
— As part of .ovh
If you can find any more, please stick a comment in the box below.
You can always reach this blog post at:
https://????????????ₛᵖ????.ⓜ????????????/????????????/