How to use it
- Type or paste your text, or drop a text file onto the box.
- If your text is Turkish, Azerbaijani, German, Greek or Lithuanian, pick the language — it changes the result.
- Click a case. The result appears below with a note on what the conversion cost you.
- Copy it, download it, or feed it back in as input to chain conversions.
Case is a language rule, not a character rule
Almost every case converter applies one mapping to every language, and for most text that is fine. For the letter i it is not, and Turkish is where it shows.
English has one i, whose capital is I. Turkish has two separate letters: a dotted i whose capital keeps the dot, İ, and a dotless ı whose capital is I. Apply the English rule to Turkish and you do not get a slightly odd capital — you get a different letter, and often a different word. The city is İstanbul, not Istanbul. Uppercase the Turkish word iş with the default mapping and you get IS, which is not a Turkish word at all.
The browser cannot work out the language from the text, because the same letters appear in many languages. That is why the setting is yours to choose rather than something we guess at. Azerbaijani follows the same i rules. Greek has a final sigma, ς, that only appears at the end of a word and behaves differently under case conversion. Lithuanian keeps accent marks above a dotted i where the default mapping removes the dot.
Uppercasing can make text longer
German ß has no single uppercase letter. Uppercase straße and you get STRASSE: six letters in, seven out. This is the correct behaviour, not a quirk of this page — but it breaks the assumption almost every piece of software makes, which is that changing case leaves the length alone.
That assumption is load-bearing in more places than it looks. A fixed-width database column, a character limit on a form, a name badge that has to fit, a filename length cap: all of them can be within budget before the conversion and over it afterwards. The page reports when the length changed, by how much, and which characters did it.
The part that quietly breaks lookups
A very common pattern is to uppercase a value before comparing or storing it, so that differences in capitalisation stop mattering. The trouble is that some conversions throw information away and cannot be reversed.
Take straße again. Uppercase gives STRASSE. Lowercase that and you get strasse, with an ordinary double s — the ß is gone permanently. Two genuinely different inputs, straße and strasse, have now collapsed into one value. If you were using that to look something up, the lookup either matches the wrong record or fails to match the right one, and nothing anywhere reports an error.
The same trap exists in Turkish text converted with the wrong language setting, and with the Greek final sigma. This page checks the round trip after every conversion and tells you when the text does not come back.
Round-trip warnings only appear for upper and lower case. The programming cases — camel, snake, kebab and constant — are structurally lossy by design: they discard spaces and punctuation, so of course they cannot be reversed. Flagging them as a loss would be noise.
Two kinds of title case
Ask for Title Case and there are two defensible answers, so this page offers both and names them.
Capitalise Every Word is mechanical: every word gets a capital, including and, of and the. It is what you usually want for product names, column headers and menu labels.
Title Case follows the convention style guides share: short function words stay lowercase unless they are the first or last word of the title. The Lord of the Rings, not The Lord Of The Rings. Guides disagree about the exact word list and about how long a word has to be before it gets capitalised, so treat this as the common core rather than as one particular guide's ruling.
Why getHTTPResponse is three words
Converting to camel or snake case means splitting text into words first, and that split is where converters go wrong. Most of them handle spaces and underscores and stop there, so an identifier that already uses camel case comes through as one long word and you get gethttpresponse.
This one also splits on the boundaries inside existing camel case, and keeps runs of capitals together so an acronym survives as a unit. getHTTPResponse is understood as get, HTTP, Response — which is what lets it come back out correctly in whichever style you asked for.
What it will not do
It does not trim whitespace you did not ask it to trim, normalise accents, straighten curly quotes or rewrite line endings. Tools that tidy up while converting are the reason people end up comparing two files that should be identical and finding differences they cannot explain. The only change here is the one you clicked.