caseconvert.pro
Unicode and language

Unicode uppercase
and lowercase rules

Understand Unicode case conversion with Turkish I, German ß and combining characters. Learn why results and character counts can change.

Case conversion is a mapping, not a rewrite

Uppercase and lowercase seem straightforward until a letter has a language-specific form or expands into several characters. Unicode describes characters and their case relationships; a conversion uses those mappings rather than guessing spelling, translating a language, or proofreading the text.

CaseConvert.pro’s uppercase and lowercase modes use the browser’s JavaScript locale-aware case methods. Under Language settings, choose English (the default), Turkish, or German. Select the language for the letter mapping you need; the converter does not detect it automatically.

The language setting changes case mapping. It does not translate your text or turn the general English Title Case mode into another language’s editorial rules.

Turkish dotted and dotless I

Turkish distinguishes dotted i / İ from dotless ı / I. Selecting the correct mapping matters when normalizing words or names. The same input can produce a different result under English and Turkish.

Actual CaseConvert.pro results
Input and modeEnglishTurkish
istanbul
UPPERCASE
ISTANBULİSTANBUL
I
lowercase
iı
i ı
UPPERCASE
I Iİ I
İSTANBUL
lowercase
i̇stanbulistanbul

Look carefully at the English lowercase result for İSTANBUL. Its first visible letter consists of i plus a separate combining dot above (U+0307). It contains nine code points, while the Turkish result istanbul contains eight. A small visual difference can therefore affect exact string comparisons.

MDN’s locale-aware uppercase reference explains why Turkish can differ from default mappings. Choose the intended language before converting, especially for names and identifiers.

German ß can become two letters

With the German setting, straße produces STRASSE in UPPERCASE. The input has six code points; the result has seven because ß expands to SS. The English setting produces the same uppercase result for this input.

The Unicode Consortium’s case-mapping FAQ explains that default uppercase mapping keeps ß → SS, even though uppercase ẞ also exists as an alternative in German orthography. CaseConvert.pro does not provide a switch to substitute ẞ for every ß.

This is a change in the output itself, not a display or counting error. If a name or editorial requirement calls for a particular form, review the converted spelling in your destination editor.

Why character counts can differ

Three different measures help explain text length:

  • UTF-16 code units: the units used by JavaScript strings. The source input limit is 500,000 of these units.
  • Unicode code points: individual encoded values. The workbench’s visible character count uses this measure.
  • Grapheme clusters: groups that readers often perceive as one character. The workbench does not display a grapheme count.
The same visible text can have different underlying lengths
TextUTF-16 unitsCode points
A11
🙂21
é (U+00E9)11
é (e + U+0301)22
🧑‍💻53

The emoji sequence in the last row contains a person, a joiner, and a laptop. It commonly displays as one symbol. Likewise, the two accented forms can look alike even though their underlying code points differ. See MDN’s explanation of string units, code points, and grapheme clusters.

Uppercasing É keeps the separate combining accent in that example. The tool is not a Unicode-normalization utility: it does not promise to make visually equivalent strings use the same representation. It also does not remove accents or turn non-ASCII letters into ASCII substitutes.

Uppercase then lowercase may lose information

Do not treat opposite case conversions as an Undo operation. Different source spellings can collapse to the same result, and a later conversion cannot reconstruct which spelling you started with.

Two different sources can share one uppercase result
SourceGerman UPPERCASELowercase of that result
straßeSTRASSEstrasse
strasseSTRASSEstrasse

These examples both end at strasse after converting the uppercase result back to lowercase. The original ß cannot be recovered from that result alone.

Inside CaseConvert.pro, switching modes continues to read your original editor text. Choosing Use as input deliberately replaces it with the current result. Keep a copy of the source before doing that when original spelling matters. Refreshing or closing the page loses unsaved text; download or copy it first.

What the language setting does not decide

Some scripts do not have uppercase/lowercase pairs, and emoji are not letters. A writing-mode conversion can therefore leave part of a mixed-script input unchanged. For example, English UPPERCASE converts hello 世界 🙂 to HELLO 世界 🙂. It changes the Latin letters without translating the Chinese text or changing the emoji.

Title Case still uses an English small-word list under every supported language setting. Sentence case follows explicit punctuation and line-break rules; neither mode identifies proper names, acronyms, grammar, or a complete editorial standard. Read the title-case guide when converting headings.

Developer formats deliberately remove separators. Spaces, punctuation, and emoji may be discarded while a name is rebuilt. Choosing a language does not make the result a valid programming identifier. The developer naming guide explains those checks.

Copy and downloads preserve the result. TXT and Markdown exports contain the converted text, while JSON also identifies the original source, mode, and locale. The app does not parse Word or PDF documents, supply translations, or store your work between visits. See the manual’s file and export instructions.

A practical language-aware workflow

  1. Keep the original. Paste text or open a local TXT/MD file and leave the source available for comparison.
  2. Select the intended language. Open Language settings and choose English, Turkish, or German before reviewing the result.
  3. Choose the required case. Use uppercase or lowercase for letter mapping; use a writing or naming mode only when its additional rules fit the destination.
  4. Inspect names and length changes. Pay attention to dotted I, sharp S, combining marks, and any changes important to the receiving system.
  5. Copy or download. Make any editorial corrections in the destination editor, and retain the original when spelling or exact characters matter.

The examples here describe specific input and mode combinations. They do not establish a universal rule for every language or guarantee the same number of characters before and after conversion.

Practice: spot the change

Choose the locale

Which language setting turns lowercase i into uppercase İ?

Show the answer

Turkish produces İ. English produces I.

Check the round trip

After straße becomes STRASSE, does lowercasing that result restore the original spelling?

Show the answer

No. German lowercase produces strasse. Keep the original source if its sharp S matters.

Sources and further reading

Examples are original and were checked against CaseConvert.pro’s conversion engine on October 10, 2026. The guide covers the product’s three language options and demonstrates selected edge cases, rather than claiming support for every language’s editorial rules.

Put the examples to work

Keep the original, choose a mode, and review the result before using it.

Open Case Converter Read the manual