Buffalo Records Symbols

Accented and Foreign Characters

One hundred and forty accented Latin letters and Spanish punctuation marks with their real codepoints and Unicode names. Nearly all of them are letters, which is what makes them safe in a name.

Tap any tile to copy it. Nothing is sent anywhere — the copy happens in your browser.

Letters, and two marks that are not

138 of these 140 are Unicode letters: 69 capitals, category Lu, and 69 lowercase, Ll. The exceptions are ¿ U+00BF INVERTED QUESTION MARK and ¡ U+00A1 INVERTED EXCLAMATION MARK, which are Po, punctuation. The split shows up at the form: a field validating “letters only” takes the 138 and refuses those two, so a Spanish question can lose its opening mark while every word in it survives.

For the letters, the category is the whole point. A case-insensitive comparison relates É to é because the pair carries a real case mapping, and a locale-aware sort files ñ where the language says it belongs rather than after z. A decorative lookalike is a symbol: it sorts nowhere and matches nothing.

119 split into a letter plus a mark. Nineteen letters do not.

Under normalisation form NFD, ñ becomes plain n followed by U+0303 COMBINING TILDE, and é becomes plain e followed by U+0301 COMBINING ACUTE ACCENT. That decomposition is the machinery behind accent stripping: decompose, discard everything in category Mn, keep the ASCII base.

Nineteen letters here have no decomposition at all, because the difference is built into the letterform instead of added above it: the stroke letters Ø ø Đ đ Ħ ħ Ł ł, the ligature Æ æ, eth Ð ð, thorn Þ þ, sharp s ß, eng Ŋ ŋ and l with middle dot Ŀ ŀ. A pipeline that removes accents by decomposing leaves all nineteen exactly as they were, which is how a slug comes out half-converted.

One letter gets longer when you upper-case it

ß U+00DF LATIN SMALL LETTER SHARP S has no single-character uppercase. Upper-case it and one letter becomes two. A form that upper-cases a name to compare or print it is handed a longer string than it was given, so a length check applied after the conversion can reject a value that passed before it. Nothing else in these 140 does that.

The same letter, stored two ways

Because the decomposition exists, one visible letter can be held as one codepoint or as two: U+00E9 alone, or plain e followed by U+0301. On screen they are identical; as strings they are not equal, a unique index accepts both, and a search for one form can miss the other. Normalising to NFC before storing or comparing is what makes the two spellings meet.

Width does not follow the case pair

Thirty-nine of the 140 are East Asian Width Ambiguous and 101 are Neutral, and the split cuts across the alphabet rather than along it. É is Neutral while its own lowercase é is Ambiguous; Ń is Neutral and ń is Ambiguous. An Ambiguous character can take two cells in an East Asian context and one everywhere else, so a monospace list of names lines up in one terminal and staggers in another.

The Spanish and German subsets

Spanish needs the two inverted marks, five acute vowels, the tilde n and the diaeresis u: ¿ ¡ á é í ó ú ñ ü, with capitals Á É Í Ó Ú Ñ Ü. All sixteen are in the grid. German needs ä ö ü and ß, with Ä Ö Ü.

The set runs from U+00A1 to U+0150 — Latin-1 Supplement and the first half of Latin Extended-A. Japanese and Chinese are separate scripts rather than decorated Latin, and are not on this page.

Every set on the site is indexed on the symbol reference. For a different alphabet rather than a decorated one, see Greek alphabet symbols; for characters that look like Latin capitals but are numbers, see Roman numeral symbols.