skillfed

Unidecode

ASCII transliterations of Unicode text

unidecode Copyleft license GPL AGING v1.4.0 released

Install

unidecode on PyPI

pip

pip install unidecode

uv

uv add unidecode

poetry

poetry add unidecode

Package facts

License GPL (copyleft)
Python support supports the current Python release (>=3.7)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance aging — 476 days since the last release
First released
Popularity one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13)
Known vulnerabilities none known (OSV.dev, checked 2026-08-13)

Evidence: Unidecode-1.4.0-py3-none-any.whl

License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)Programming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Text ProcessingTopic :: Text Processing :: Filters

About Unidecode

from the package's own PyPI description — quoted content, verbatim

Unidecode, lossy ASCII transliterations of Unicode text

It often happens that you have text data in Unicode, but you need to represent it in ASCII. For example when integrating with legacy code that doesn't support Unicode, or for ease of entry of non-Roman names on a US keyboard, or when constructing ASCII machine identifiers from human-readable Unicode strings that should still be somewhat intelligible. A popular example of this is when making an URL slug from an article title.

Unidecode is not a replacement for fully supporting Unicode for strings in your program. There are a number of caveats that come with its use, especially when its output is directly visible to users. Please read the rest of this README before using Unidecode in your project.

In most of examples listed above you could represent Unicode characters as ??? or \\15BA\\15A0\\1610, to mention two extreme cases. But that's nearly useless to someone who actually wants to read what the text says.

What Unidecode provides is a middle road: the function unidecode() takes Unicode data and tries to represent it in ASCII characters (i.e.,...

Read as markdown · JSON record

AI interpretation — verify before relying

AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page

Unidecode converts Unicode text to ASCII by transliterating non-Latin characters into their closest ASCII equivalents, useful for creating URL slugs, legacy system integration, and keyboard-friendly identifiers.

Installation is straightforward with no runtime dependencies and a pure-Python wheel distribution. The package is aging (476 days since last release) but remains actively maintained and widely used in the top 1000 PyPI packages.

Unidecode is licensed under GPL (copyleft), which requires that any derivative work or software linking it must also be released under a compatible open-source license. This may restrict use in proprietary applications.

Usage

pip install unidecode

from unidecode import unidecode
result = unidecode('kožušček')
print(result)  # Output: 'kozuscek'

Requires Python 3.7 or later with a "wide" Unicode build (UCS-4); narrow builds do not support characters outside the Basic Multilingual Plane.

Verdict: Unidecode is a mature, dependency-free library well-suited for ASCII transliteration tasks, but its GPL copyleft license limits use in proprietary software. The aging maintenance status and lack of language-specific transliteration should be weighed against its proven stability and broad adoption.

Needs verification

  • Whether the 476-day gap since last release reflects deliberate stability or reduced active development
  • Specific performance characteristics for large-scale text processing
  • Accuracy expectations for non-Latin scripts beyond the documented caveats
unicode to ascii transliterationurl slug generationascii text conversionremove accents unicodelegacy system text encodingnon-latin character mapping

Similar packages