Skip to content


Repository files navigation

Hanzi Writer Data

View a live-demo of this data at


This is the character data used by Hanzi Writer. This data was originally contained in the Hanzi Writer repo, but was moved out for several reasons:

  • This data is licensed separately from the Hanzi Writer source code.
  • This allows users who wish to import character data in NPM to do so without forcing everyone to download the character data along with Hanzi Writer.
  • Publishing on NPM makes this data available on the jsdelivr CDN, so data can be loaded via, for instance,我.json.

Check out for more info about Hanzi Writer.


By default Hanzi Writer will automatically load this character data from the jsdelivr CDN when needed, so most users don't need to worry about loading this data explicity. However, loading this data explicitly can allow Hanzi Writer to work offline which is great for mobile apps. Also, if you know in advance which characters Hanzi Writer should display you can preload the data and avoid needing to make a web request at all, which is a nice speed boost. The easiest way to load Hanzi Writer character data is via npm:

npm install hanzi-writer-data

Then, you can require character data in JS just like you would any other JS module:

const wo = require('hanzi-writer-data/我');

You can then pass this data into Hanzi Writer via the charDataLoader option, like below:

const HanziWriter = require('hanzi-writer');
const woData = require('hanzi-writer-data/我');

var writer = new HanziWriter('target', '我', {
  charDataLoader: function(char) {
    return woData;


This data comes from the Make Me A Hanzi project, which extracted the data from fonts by Arphic Technology, a Taiwanese font forge that released their work under a permissive license in 1999. You can redistribute and/or modify this data under the terms of the Arphic Public License as published by Arphic Technology Co., Ltd. A copy of this license can be found in ARPHICPL.TXT.