Case converter
Paste text and get every case at once: upper, lower, sentence, title, and the names programmers use (camelCase, snake_case, kebab-case and friends). Convert the whole text or one line at a time, copy any result, or send it back as the new input. Your text stays in this page and is never uploaded.
1 lines, 91 B of the 1 MB limit
Options
Whole text treats line breaks like spaces for names such as snake_case and keeps sentences running across lines. Each line converts every line separately and keeps your line breaks exactly.
Only change this for Turkish, Azeri or Lithuanian text. Everything else is the same in every language.
Text styles
Kept in lowercase inside a title: a, an, the, and, but, or, nor, for, so, yet, as, at, by, in, of, off, on, per, to, up, via. The first word, the last word and the first word after a colon, ? or ! are always capitalised.
Always works line by line.
Names for code
How the conversions work
- •UPPER CASE and lower case use the browser's built-in Unicode rules, so accents work (é becomes É). The German ß becomes SS in upper case ("Straße" becomes "STRASSE"), and lower-casing STRASSE gives strasse, not straße. Greek final sigma is handled: ΟΔΟΣ becomes οδος.
- •Sentence case lower-cases everything, then capitalises the first letter of the text and the first letter after . ! ? … or 。!? that is followed by a space. It does not know names, "I" or abbreviations: "e.g. this" becomes "E.g. This". In whole-text mode a line break does not start a new sentence; use "Each line on its own" for that.
- •Title Case capitalises the first letter of each word and lower-cases the rest, so NASA becomes Nasa. An apostrophe stays inside the word: "don't" becomes "Don't" (python's str.title() gives "Don'T"). With "Keep small words lowercase" these words stay lowercase in the middle of a title: a, an, the, and, but, or, nor, for, so, yet, as, at, by, in, of, off, on, per, to, up, via. That is a simple list, not any one style guide: AP, Chicago and others draw the line differently, so check yours. A capitalised first letter uses Unicode's title case, which for a few letters differs from upper case: the ligature fi becomes Fi, the digraph dž becomes Dž, ß at the start of a word becomes Ss, and Georgian letters stay as they are. This applies to Title Case, Sentence case, Capitalize each line and the names for code.
- •Names for code split your text into words at spaces, punctuation, underscores, hyphens and case changes. parseHTTPResponse is parse, HTTP, Response, so snake_case gives parse_http_response and camelCase gives parseHttpResponse (acronyms become ordinary words). Digits stay with the letters before them, and a digit followed by a Capitalised word starts a new word: iPhone15Pro is i, Phone15, Pro, giving i_phone15_pro. Apostrophes are dropped ("don't" becomes dont), and symbols and emoji are removed.
- •Capitalize each line and alternating case: the first one raises the first letter of every line and leaves the rest alone; the second alternates lower and upper case on letters only, starting with lower. Inverse case swaps upper and lower.
- •Turkish, Azeri and Lithuanian have their own upper and lower case rules. In Turkish "istanbul" becomes İSTANBUL, not ISTANBUL, because i and ı are different letters. Choose the language in the options. The Lithuanian rule only matters for a few combinations of the letter i with accent marks.
- •Chinese, Japanese and Korean have no upper or lower case, so they pass through unchanged and the page tells you how many it found. In names for code they stay together as one word.
- •Text up to 1 MB is accepted. Each conversion reads your text once, and long results are shortened on screen only; Copy always copies everything.
Questions
- Why did ß turn into SS?
- Unicode's rule for upper-casing the German ß is SS, and that is what browsers and JavaScript do. The capital ẞ exists but is rarely used, so it is not produced. The change cannot be undone: lower-casing STRASSE gives strasse.
- Why is the Turkish i wrong with the default setting?
- Turkish and Azeri have two letters, i and ı, each with its own capital: i becomes İ and ı becomes I. The neutral rule turns i into I, which is wrong for those languages. Pick Turkish or Azeri in the options and "istanbul" becomes İSTANBUL.
- How does it decide where a name splits?
- At spaces and punctuation, between a lowercase letter and a capital (aB), before the last capital of an acronym that is followed by a lowercase letter (HTTPResponse), and before a Capitalised word that follows a digit (15Pro). Digits otherwise stay attached: ab12CD stays one word, ab12cd.
- Is my text uploaded or saved?
- No. The conversions run in your browser and nothing is sent anywhere or stored. Closing or refreshing the page clears the box.