General2026-07-21

What Language Is That? How I Identify Unknown Text

I found a sticky note in my apartment written in a language I could not read. What started as a puzzle turned into a practical system for identifying any text I encounter online.

A few years ago, I found a sticky note stuck to the underside of my desk. It was handwritten in a script I could not read — looping, elegant curves that looked nothing like the Latin alphabet. I had no idea what language it was. I asked my roommates. Nobody knew. It sat there for months, this tiny mystery taped to my workspace. Eventually I solved it by uploading a photo to an online forum. It was Tibetan. Some previous tenant had left a good luck blessing. But the experience started something in me: whenever I encounter a language I do not recognize, I want to identify it immediately. These days I have a pretty reliable system for figuring out what language any piece of text is in, and it starts with the simplest tool that most people overlook: the Unicode character range. Every script in the world has a designated block of Unicode code points. Cyrillic characters live in U+0400 to U+04FF. Arabic is U+0600 to U+06FF. Hangul (Korean) is U+AC00 to U+D7AF. If you copy a strange character into a Unicode lookup tool — and there are several good ones — you can instantly see what script block it belongs to. That narrows it down enormously. Once you know the script, you can often guess the language. Cyrillic could be Russian, Ukrainian, Bulgarian, Serbian, or a dozen others. Arabic script could be Arabic, Persian, Urdu, or Pashto. The next step is looking for common words. This is where language codes become useful. Language codes are the two-letter and three-letter identifiers defined by the ISO 639 standard. "en" is English, "fr" is French, "ja" is Japanese. Browsers use them in the lang attribute. APIs use them in Accept-Language headers. Knowing them helps you use translation and detection tools more effectively. If you tell Google Translate to detect from "auto" it usually works, but specifying the script first gives it a massive head start. I keep a mental map of the most frequently confused scripts. Hindi and Nepali both use Devanagari. The difference is in the common words and the diacritics. Thai and Lao look similar to an untrained eye but use different tone markers. The trick is not to learn every script — that takes years — but to learn how to tell them apart quickly using reference charts. For physical text like my desk note, I use a combination of visual pattern matching and online communities. Phone camera, a quick crop, and posting to a language identification subreddit. I usually get an answer within an hour. For digital text, I wrote a small bookmarklet that highlights all the script blocks on a page and shows me the ISO 639-1 code for each detected language. It is not perfect, but it is fast. When I land on a page in a language I do not recognize, I can identify it before I decide whether to reach for a translator. That Tibetan sticky note stayed on my desk long after I identified it. It stopped being a mystery and became a souvenir. And now when people visit and ask what it says, I get to tell them the whole story.