Conversion calculator

Text Case Converter

Three title cases give three answers. And “I” does not lower-case the same everywhere.

Calculator

5 words · 21 characters (17 without spaces) · 1 line

Try:

Three title cases, three answers

There is no single title case. Chicago lower-cases short words at any length, AP capitalises prepositions of four letters or more, and a word-boundary regex capitalises everything. All three are in use.

Chicago
The Lord of the Rings
AP
The Lord of the Rings
every word
The Lord Of The Rings

Every style

UPPER CASETHE LORD OF THE RINGS
lower casethe lord of the rings
Title Case (Chicago)The Lord of the Rings
Title Case (AP)The Lord of the Rings
Title Case (every word)The Lord Of The Rings
Sentence caseThe lord of the rings
camelCasetheLordOfTheRings
PascalCaseTheLordOfTheRings
snake_casethe_lord_of_the_rings
kebab-casethe-lord-of-the-rings
CONSTANT_CASETHE_LORD_OF_THE_RINGS
aLtErNaTiNgtHe lOrD Of tHe rInGs

What this converter covers

Every style at once, because the interesting thing about case is that the styles disagree — and a warning when your text is one of the ones locale rules change.

  • Upper, lower, sentence and alternating case
  • Three title-case styles — Chicago, AP, and the naive one — shown together
  • camelCase, PascalCase, snake_case, kebab-case and CONSTANT_CASE
  • A warning when the text lower-cases differently under Turkish rules
  • Word, character and line counts alongside
Every style at once Locale trap flagged Chicago, AP and naive Counts included

Free, no signup — exact by definition, not an estimate.

Updated 7 September 2026

At a glance

Formula shown
Word-boundary and locale-aware case mapping — no arithmetic
Scenario support
Chicago: The Lord of the Rings · naive: The Lord Of The Rings · tr: ADMIN → admın
Educational estimate
Planning support from the values you enter — not professional advice.

There is no single title case

“Title Case” sounds like one thing and is at least three, which is why this tool shows them together rather than picking one and calling it the answer.

Take the lord of the rings:

  • NaiveThe Lord Of The Rings. What a word-boundary regex produces: every word capitalised. Not a published style, but overwhelmingly the most common in software.
  • ChicagoThe Lord of the Rings. Articles, coordinating conjunctions and prepositions are lower-cased regardless of length, except as the first or last word.
  • AP — agrees here, and diverges elsewhere.

Chicago and AP part company on longer prepositions. a journey through the woods is A Journey through the Woods in Chicago, which lower-cases prepositions at any length, and A Journey Through the Woods in AP, which capitalises anything of four letters or more.

Both rules keep the first and last word capitalised whatever they are, which is why Of Mice and Men keeps its capital O and What Are You Waiting For keeps its capital F.

If you are writing to a house style, pick the one that style names. If you are writing software, know that the naive version is what most libraries do and that it is not what an editor would accept.

The bug that breaks Turkish logins

Case conversion is not a property of a string. It is a property of a string and a locale, and the difference has broken real production systems.

Turkish treats the dotless ı as a separate letter from i, with its own capital I, while dotted i capitalises to İ. So lower-casing ADMIN gives admin under invariant rules and admın under Turkish ones.

That is enough to break a login. A case-insensitive comparison written as input.toLowerCase() === "admin"runs under the user’s locale in many environments, so a Turkish user typing their username exactly right produces admın, which does not match — and the failure is invisible to everyone testing in English.

The fix in code is to normalise with an explicitly invariant function rather than the locale-sensitive default: toLowerCase('en-US')or the platform’s invariant equivalent, and never the locale-default one for identifiers, keys or comparisons.

This tool warns when your text is actually affected — when it contains an I — rather than showing the warning on everything, because a warning that appears on every input is one nobody reads.

Cases that are really naming schemes

camelCase, PascalCase, snake_case, kebab-case and CONSTANT_CASE are not typographic styles at all. They are conventions for writing multi-word identifiers where spaces are not allowed, and each belongs to particular contexts.

camelCase for variables and functions in JavaScript, Java and Swift. PascalCase for classes and types in most of those same languages, and for functions in Go and C#. snake_case for variables and functions in Python, Ruby and Rust, and for database column names almost everywhere.

kebab-case cannot be an identifier in most languages, because the hyphen is a minus sign — which is exactly why it is safe in URLs, CSS class names and file names, where it will never be parsed as arithmetic. CONSTANT_CASE is the near-universal convention for environment variables and compile-time constants.

The conversion between them is lossy in one direction: splitting userProfileImageURL back into words has to guess where the acronym ends, and reasonable implementations disagree about whether the result is user_profile_image_url or user_profile_image_u_r_l. This one splits on the lower-to-upper transition, which handles the common case and does not pretend to handle every one.

Sentence case cannot know your nouns

Sentence case capitalises the first letter of each sentence and lower-cases the rest. That last part is where it goes wrong, and no algorithm can fix it.

APPLE RELEASED A NEW PHONE IN PARIS becomes Apple released a new phone in paris — the sentence start is right and Paris has lost its capital, because nothing in the string says it is a place rather than a word. Names, brands, months, languages and nationalities all fail the same way.

The same limit applies to every title case here from the other direction: they capitalise words that should stay lower-case in some contexts, and they cannot tell a proper noun from an ordinary one either.

So treat any automatic case conversion as a first pass. It gets the mechanical part right — sentence starts, short-word rules, separators — and leaves the judgement where it belongs.

Doing it in a spreadsheet

=UPPER(A1), =LOWER(A1) and =PROPER(A1) cover the basics. PROPER is the naive title case — it capitalises every word, including the short ones, so it produces The Lord Of The Rings rather than any published style.

It also has a quirk worth knowing: PROPER capitalises after any non-letter, so o'brien becomes O'Brien — usually right — but can't becomes Can'T, which is not. Names with apostrophes and contractions cannot both be handled by the same rule.

For sentence case there is no built-in function. The usual construction is =UPPER(LEFT(A1,1))&LOWER(MID(A1,2,LEN(A1))), which handles a single sentence and lower-cases every proper noun in it — the same limitation as above, with no warning.

For identifiers, =LOWER(SUBSTITUTE(TRIM(A1)," ","_")) gives snake_case and the same with a hyphen gives kebab-case. Wrap the input in TRIM — a trailing space becomes a trailing separator otherwise, and those are invisible in the cell and fatal in a URL.

Related calculators

Other notations worth converting:

Numeral BaseBinary, octal, decimal and hex — showing the 4-bit grouping that makes hex work, and handling negatives at a width you choose.
ColourHex, RGB and HSL in both directions, with the WCAG contrast ratio on white and black — because that is usually the real question.
Roman NumeralsNumbers to Roman numerals and back, 1 to 3,999 — reading the older spellings like IIII and writing the standard modern form.
CoordinatesLatitude and longitude between degrees-minutes-seconds and decimal degrees, showing how far the common misreading would put you.
Data StorageBytes, KB, MB, GB and TB alongside the binary KiB, MiB, GiB and TiB — and why a 1 TB drive shows as 931 GB.
Million, Billion and TrillionThousand to trillion in both naming conventions, since a billion is 10⁹ in the US and 10¹² across much of Europe.

More in Conversion, or browse all calculators.

Sources and methodology

Nothing here is fetched and there is no data feed, and there is no arithmetic either — this is a string transformation. What the sources settle is that the transformation is not neutral: Unicode defines case mapping as locale-sensitive and names the Turkish case explicitly, and Chicago and AP publish genuinely different capitalisation rules that this page does not attempt to reconcile.

Conversion note

Case conversion looks mechanical and is not. Two limits are worth stating. First, no automatic title case can know your proper nouns: “apple” is capitalised in “Apple released” and not in “an apple a day”, and nothing in the string distinguishes them — every result here needs a human read before publication. Sentence case has the same problem in reverse, lower-casing names that should stay capitalised. Second, case mapping is locale-dependent and this page uses invariant rules for its output, showing the Turkish divergence separately as a warning rather than applying it. Some mappings are also not reversible: the German ß upper-cases to SS, which cannot be lower-cased back, so an upper-then-lower round-trip is lossy for some text. For identifiers, database keys or anything compared programmatically, normalise with an explicitly invariant function rather than the locale-sensitive default.

How we calculate · Found an error? email us

Authorship & verification

Written and maintained by , a business operator who builds spreadsheet-based calculators.

What's changed (4 updates)

Published 7 September 2026

  1. Published the Text Case Converter: upper, lower, sentence, three title styles, camel, Pascal, snake, kebab, constant and alternating, all shown at once.
  2. Shows three title cases rather than one, because there is no single standard. Chicago gives The Lord of the Rings, a word-boundary regex gives The Lord Of The Rings, and AP diverges from Chicago on prepositions of four letters or more.
  3. Warns when the text lower-cases differently under Turkish rules. ADMIN becomes admın there, because Turkish has a dotless i as a separate letter — which is enough to break a case-insensitive login for a user typing their own name correctly. The warning is conditional on the text actually containing an I, since a warning on every input is one nobody reads.
  4. A test caught a real internationalisation bug during the build: the naive title case used a word-boundary regex, and since that boundary is ASCII it capitalised the wrong letter in accented words, turning eire into eIre. Now matched on an explicit non-letter instead.

Add this calculator to your site

Responsive embed — and private: nothing your visitors type leaves their browser.