he is a JavaScript library that provides robust HTML entity encoding and decoding, with full Unicode support. It supports all standardized named character references (e.g., ©, —), handles numeric and hex entities, and deals properly with astral Unicode symbols (i.e., code points outside the BMP). The library is designed so that he.decode(input) will safely convert HTML-entity encoded strings into proper Unicode text, and he.encode(text, options) will encode non-ASCII or special characters into safe entity references. It emphasizes correctness, security (avoiding common pitfalls when decoding entities), and broad compatibility (browser, Node.js). The API is straightforward, documented, and used across modules that require reliable entity handling (e.g., for HTML sanitization or templating). Its longevity and adoption make it a go-to library for developers needing entity handling beyond minimal ad-hoc hacks.
Features
- Full support for named, numeric, and hex HTML character references
- Correct handling of astral Unicode symbols (surrogate pairs)
- Both encoding (.encode) and decoding (.decode) APIs
- Configurable options (e.g., use named references) for encoding behavior
- Works in browser & Node.js environments
- MIT-licensed, minimal dependencies