Suppose I know nothing about Chinese writing systems but some basic strokes and radicals. When given a blocky-looking character, how do I tell if it's a character only used in Kanji, in Chữ Nôm, or in Chinese?

Of course, we can also consider Sawndip, Tangut, Khitan, etc.

Clues I can think of:

  • Chữ Nôm uses quite some radicals at places that Chinese characters won't use. For example, 𡨸 (Chữ in Chữ Nôm) uses 宁 as a left-side radical, which is never seen in Chinese.
  • Simplified Chinese uses "又" quite often. For example, the traditional Chinese character 漢 (han in han zi) is simplified to 汉.
  • Tangut and Khitan uses the two crossing strokes 乂 quite liberally.

EDIT: Updated the title to clarify that I'm looking for heuristics, rather than an "algorithm" that will prove 100% correct.

Disclaimer: As a native Chinese speaker who have learned Japanese and is recently dipping into Vietnamese, I found my own judgement biased and suffering from the curse of knowledge in coming up with an answer.

  • 1
    See the chinese tag info: this question would probably be a better fit on Chinese Language.
    – Keelan
    Commented Feb 27, 2023 at 8:53
  • 4
    In many cases, you can’t tell from a single character which language it’s taken from, since there’s a large overlap between hanzi, kanji, chữ Nôm, hanja and lots of other minor scripts. The easiest way to tell which subset of CJK scripts a given character is limited to is probably to look it up on Wiktionary, which will tell you, for example, that 山 ‘mountain’ is found in at least 16 different CJK scripts, whereas is only found in Mainland (Simplified) Chinese and is only found in Japanese. Commented Feb 27, 2023 at 9:54
  • Thank you. Clarified my question that I'm looking for heuristics rather than definitive "algorithms".
    – tslmy
    Commented Feb 27, 2023 at 21:39
  • @Keelan, I don't think my question fits there better. The goal is not to tell if a character is Chinese or not. It's about differentiating between those languages, of which Chinese is just a member. It seems to me more fair to those non-Chinese languages if I keep this question here. Would that make sense?
    – tslmy
    Commented Feb 27, 2023 at 21:43
  • Are you looking for a heuristic that can be carried out by a human? Otherwise, for all but the most memory-constrained embedded systems, if you have a computer it would be much easier to do a lookup on a pre-compiled list.
    – mudri
    Commented Mar 4, 2023 at 17:44

3 Answers 3


This is merely a heuristic, but Chữ Nôm characters tend to have non-traditional components in their construction, as a result of having to divide the character between a part that more or less unambiguously specifies the meaning, and a part that suggests the pronunciation. This sometimes leads to characters which seem more complex than a typical Han character, such as 𤄯 or 𠚢 .

You can see this in the character 𡨸 itself, which decomposes into a full phonetic 宁 and a full semantic part 字, which would be pretty unusual (although certainly not impossible) for a Han character.

Furthermore, in Chữ Nôm you may see Chinese radicals on the "wrong" side of the character — for example 𠊛 người has the 人 radical on the right hand side, which is truly unusual.

The above are naturally just heuristics, as many Chữ Nôm characters could well be plausible Han characters, even if they don't exist in the repertory of Han characters. 恄 ghét might be an example of such a combination that wouldn't be surprising at all as a Han character.

  • Of course, 人 also appears on the right in (Simplified) Chinese in cases like 队 (traditional 隊), though 亻 never appears anywhere but on the left. But even this basic heuristic still requires a fair amount of knowledge of CJK scripts. If you know enough to recognise when a radical appears on an unusual side or when a full character is used as a phonetic component, you likely don’t really need the heuristic. If only know the very basics (as premised in the question), you won’t be able to recognise the elements needed to apply the heuristic to begin with. Commented Feb 28, 2023 at 11:03

In general, you will need to look it up in a dictionary or in the Unicode standard, this is similar to the problem of guessing if a string of Latin letters represents an English or a German word. As in the case of Latin strings there are some hints that may help to identify a certain character as not belonging to standard Chinese, like the usage of a long obsolete radical or lacking some long established simplifications, but this applies only to a subset of the characters.

EDIT: In order to take the writing systems apart, I suggest another approach: Compile frequency lists of the characters for the languages you want to discriminate and use them for language identification (this is a standard task in Computational linguistics, and one where the computer is really good at). The most frequent characters will already provide a strong signal. This task is much easier than to identify the writing system for a single character in isolation.

  • Hints are good enough. The scenario is that I want to be able to tell those writing systems apart without too much effort. Could you come up with some more heuristics? Thank you!
    – tslmy
    Commented Feb 27, 2023 at 21:40
  • 1
    I don’t think any such heuristics would be possible. At a very, very broad level, you could say that the more simplistic a character looks, the more likely it is to be Simplified (= Mainland) Chinese, and the more ridiculously complex it looks, the more likely it is to be Vietnamese – that might work about 25% of the time, if you’re lucky. Other than that, simplifications and new coinages are simply too variegated and diverse to be boiled down to heuristics. Commented Feb 27, 2023 at 22:45
  • @tslmy I have added an edit, telling the writing systems apart is in fact much easier than assigning a writing system to an isolated character. Commented Mar 1, 2023 at 9:20

You can easily define Mandarin Chinese characters, Japanese Kanji, and Vietnamese Chữ Nôm by how the radicals are used/or there is an alternative approach, which is a dictionary. There is a Vietnamese dictionary that includes Simplified, Traditional, 新字体 (shinjitai), and chữ Nôm (sometimes it also includes other Chinese script families). The link goes here (the dictionary itself is written in Vietnamese, you should use a translator to fully understand it).

Anyway, that's not what I'm here for. To define Simplified Chinese Characters, you should pay attention to the radicals. Some radicals are simplified, such as

  • 見 is simplified to 见
  • 言 is simplified to 讠 (only in the radical form, it wouldn't be if it was a normal character. Like 語 and 语)
  • And yes, the list goes on.

If you want to see if it is Japanese Kanji or not, you can check out 新字体. There are even some kanji that are created and used exclusively in Japan, which could be:

  • 壱、弐...

There are some that have been simplified by the Japanese:

  • 桜、単、実...

And there's this character whose purpose is to be whatever the character before it is:

To define whether a character is chữ Nôm or not, you just need to find a character that looks like Chinese, but in reality it's not. A Nôm character contains two parts, one is the radical or character with meaning, and the other is for sound. (You may already know this).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.