🔤 Diacritic audit tool
Accented character counter
Find accented letters, combining marks, base-letter groups, language signals, and Unicode normalization shifts before text moves into catalogues, ebooks, indexes, or metadata.
| Family | Common marks | Typical base letters | Publishing check |
|---|---|---|---|
| Acute | ´ é á í ó | a, e, i, o, u, y, c, n | Very common in French, Spanish, Portuguese, Polish, and Irish names. |
| Grave | ` à è ì ò | a, e, i, o, u | Check against house style when metadata systems strip marks. |
| Circumflex | ^ â ê î ô | a, e, i, o, u | Often survives OCR but may split into combining marks. |
| Tilde | ~ ñ ã õ | a, n, o | Important for names and Spanish or Portuguese copy. |
| Diaeresis | ¨ ä ë ï ö ü | a, e, i, o, u, y | Separate from umlaut handling in German records. |
| Cedilla and ogonek | ¸ ç ą ę | c, a, e, i, u | Watch pasted catalogue text from legacy encodings. |
| Breve and caron | ˇ ă č ř š | a, c, d, e, r, s, z | Often signals Central European language names. |
| Stroke and special letters | / ø ł đ ğ | d, g, l, o, t | Not always decomposed by Unicode normalization. |
| Benchmark | Expected accent density | Signature characters | Checker interpretation |
|---|---|---|---|
| French prose | Light to medium, often 2–7% | é, è, à, ç, ô | A low count may be normal for names, but suspicious for translated jacket copy. |
| Spanish prose | Light, often 1–4% | á, é, í, ó, ú, ñ | Look for missing tildes in author names and titles. |
| Portuguese prose | Medium, often 3–8% | ã, ç, á, ê, õ | Tilde and cedilla groups should both appear in natural prose. |
| German names | Light, often 1–5% | ä, ö, ü, ß | Umlauts may be intentionally transliterated as ae, oe, ue. |
| Vietnamese text | Heavy, often 20%+ | ạ, ả, ắ, ế, ợ | Multiple marks per vowel are expected; decomposed counts can rise sharply. |
| Turkish text | Medium, often 5–12% | ç, ğ, ı, ö, ş, ü | Dotless i and g-breve are special-letter checks, not only combining marks. |
| Polish notes | Medium, often 4–10% | ą, ć, ę, ł, ń, ó, ś | Ogonek, acute, and stroke families should be separated for proofing. |
| Icelandic text | Medium, often 4–11% | á, ð, é, í, ó, þ, ú, ý | Eth and thorn are special letters rather than accent marks. |
| Form | What it does | Best use | Count behavior |
|---|---|---|---|
| Raw paste | Leaves every code unit as received. | Checking source corruption or copy-paste differences. | Shows original length, including split marks. |
| NFC | Composes compatible base letter plus mark sequences. | Most ebook, web, and metadata QA passes. | Usually lowers decomposed accent counts. |
| NFD | Splits composed accented letters into base plus combining marks. | Seeing every diacritic mark explicitly. | Raises mark instances and exposes stacked marks. |
| NFKC | Composes while folding compatibility characters. | Cleaning full-width or styled text before indexing. | May change symbols and letterlike forms. |
| NFKD | Compatibility split into decomposed pieces. | Building slug or search-index review data. | Largest expansion in many samples. |
| Use case | Recommended basis | Main risk | Review threshold |
|---|---|---|---|
| Author and contributor names | Exact accented character | Incorrect identity or sorting | Review every accented token manually. |
| Book title metadata | Grapheme clusters with NFC | Missing marks in search listings | Any normalization delta deserves inspection. |
| OCR cleanup | Combining mark instances | Floating accents after scan repair | Flag stacked or unattached marks. |
| Multilingual catalogue fields | Base letter grouping | Inconsistent transliteration | Compare density with the language benchmark. |
| URL slug or filename prep | NFKD plus base grouping | Unsafe folded names | Save both original and stripped forms. |
| Copyediting sample review | Accent-bearing words | One misspelled repeated word | Sort top tokens and inspect repeats. |
DISCLOSURE: This post may contain affiliate links, meaning when you click the links and make a purchase, I receive a commission. As an Amazon Associate I earn from qualifying purchases.
Metadata has a silent catastrophe: where is the accent? A missing accent isn’t a server-crash-level problem. But it transforms José into Jose. That may well be right if you’re recording English names; it means your Spanish will have a few problems. The visual difference between those two is slight. However, it trips over search indexes. This ruins libraries ability to alphabetically sort books and confuses readers trying to find particular titles or authors.
You pretend the text is like clear ink on a screen but under there is a whole complicated system of stuff going on: Unicode code points, combining marks, normalization forms. And until something breaks down, hardly any editor sees all that. To explore that architecture, there’s this: That’s a screen shot from a really useful tool for examining the digital structure of your text (a.k.a., stuff underneath the letters).
Why Missing Accents Cause Problems
Paste some catalog notes, an author bio, even a book jacket blurb into it, and it’ll count up all accent marks that are in there. From there it figures out what family each mark belongs to, and then it tells you whether each mark is stored as one single composed character, or split into a base letter and a floating accent mark. That latter point is important, though it is not as obvious as you’d think.
While both the composed and the decomposed versions will appear exactly the same on your monitor, a single precomposed character like é is only one code unit. A decomposed version are two (the letter e plus a separate combining acute mark). And guess what? The way they behave in a file system, a database, and a search engine is very different. So if your text has a bunch of marks that should be decomposed but aren’t, or vice-versa, you run the risk of having sort orders break and having the same word end up duplicated somewhere else in the database.
To run the analysis here for yourself, the calculator up top do the work for you and compares raw paste to various normalization standards (NFC/NFD). That will expose some hidden inconsistencies that would otherwise be invisible with a simple visual scan. If you notice the normalization delta shifting, that’s when the tool detected split characters which may present problems down the line.
It also allows filtering based off language benchmarks. The density of accents varies by language. French prose will have much more than English copy, which will automatically change the tool’s risk assessment. Normalized Vietnamese text will have a heavy accent load, which is not only expected but normal. The same density in an English title could signal either a data entry error or an OCR artifact gone unchecked. Context matters, don’t chase ghosts.
Consider how text is taken in: If you accept it by scanning something into your system, then the optical character recognition software have trouble with diacritics. Yes, it might put the accent mark in the wrong place a bit but no, it might even remove it from the base letter altogether. These orphaned accents are invisible to human eyes, but noticeable to the counter. They show up as lost-host combining characters; check your raw text next to your composed review form, a solid workflow maneuver where you can identify floating accents before they ruin your master records. This little move goes a long way toward maintaining data integrity.
You can group accents into families using the breakdown tables as well. For example, while acute marks is used in lots of European languages, cedillas and tildes point to French (or sometimes Portuguese or Spanish) origins. That might alert you that some of the metadata has copy-paste errors from different sources or is inconsistently transcribed. By grouping by base letter, you can check that names are spelled the same way throughout the project. For instance, perhaps an author’s name was typed with a combined tilde on the first page and a split one at the end. The counter will catch that inconsistency and let you standardize before publishing.
Normalization isn’t simply a matter of taste; it’s also a quality assurance process. When we write out characters, we’re telling software systems to treat similar characters as equivalent. Rarely do we need to break down text in final output files; more often than not, it’s helpful for analysis or debugging purposes. Unless you have a workflow involving exporting text from one app into another (particularly apps that use older encoding schemes), most moddern platforms will assume NFC normalization. A substantial shift in normalized character counts is an easy sign that this has changed.
At bottom, this is about paying attention to detail on the digital side: not to learn any obscure Unicode standards, and not to type code to debug by hand, but simply to check that the hidden form matches the displayed one. Audit your files before indexing them or sending them off for cataloging; catch little mistakes before they turn into big data issues. A missing accent remains a problem until you notice it, at which point it is easy to fix. You should of noticed it sooner.

