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
    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. Feb 27, 2023 at 9:54
  • Thank you. Clarified my question that I'm looking for heuristics rather than definitive "algorithms".
    – tslmy
    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
    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
    Mar 4, 2023 at 17:44

2 Answers 2


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. 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
    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. 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. Mar 1, 2023 at 9:20

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.