Case Converter — UPPER, lower, camelCase
See nine case formats side by side and copy the one you need
Runs in your browser · nothing is uploaded
Applies that language's upper/lower-case rules. Scripts without case (Korean, Chinese, Japanese) stay unchanged.
What it is
This case converter turns your text into nine formats at the same time. Use it for ordinary writing, like making a heading Title Case or fixing text typed with caps lock on, or for code, like converting a phrase to camelCase, PascalCase, snake_case, kebab-case or CONSTANT_CASE. Each result has its own copy button.
How to use
- Type or paste text. Every format updates as you type.
- With several lines, the programming formats (camel, Pascal, snake, kebab, constant) are applied to each line separately and line breaks are kept.
- Choose a language rule if you need one, such as Turkish.
- Press Copy next to the format you want.
How it works
- UPPER and lower use the browser’s locale-aware conversion, so Unicode rules apply: the German ß becomes SS in uppercase.
- Title Case capitalizes the first letter of each word and lowercases the rest. A letter after an apostrophe is not treated as a new word, so it’s becomes It’s.
- Sentence case lowercases everything, then capitalizes the first letter of each sentence: at the start and after a period (.), question mark (?), exclamation mark (!) or line break. Other punctuation such as a colon does not start a sentence.
- Word splitting breaks at spaces and punctuation, between a lowercase letter or digit and a capital, and before the last capital of an acronym that is followed by lowercase, as in XML and Http.
- camelCase, PascalCase, snake_case, kebab-case and CONSTANT_CASE join the split words with no separator, an underscore or a hyphen. Punctuation is treated as a separator and dropped, so don’t becomes don_t in snake_case.
- Characters without case, including Korean, Chinese, Japanese and emoji, are never changed by case conversion.
Examples
| Input | Format | Result |
|---|---|---|
| hello world foo | camelCase | helloWorldFoo |
| XMLHttpRequest | snake_case | xml_http_request |
| XMLHttpRequest | kebab-case | xml-http-request |
| base64Encode | CONSTANT_CASE | BASE64_ENCODE |
| the quick BROWN fox | Title Case | The Quick Brown Fox |
| 안녕 세계 | snake_case | 안녕_세계 |
| istanbul (Turkish) | UPPER | İSTANBUL |
FAQ
Does it handle acronyms like XMLHttpRequest?
Yes. A run of capitals is treated as one acronym, and the last capital starts the next word when a lowercase letter follows. XMLHttpRequest becomes xml_http_request. Digits stay attached to the letters before them, so base64Encode becomes base64_encode.
What happens to Korean, Chinese or emoji?
Scripts without upper and lower case, such as Korean, Chinese and Japanese, are left unchanged, and so are emoji. In snake_case and similar formats only the separators change.
Why is there a Turkish option?
In Turkish and Azeri the uppercase of i is the dotted İ and the lowercase of I is the dotless ı. With the Turkish rules selected, istanbul becomes İSTANBUL. With the default rules it becomes ISTANBUL.
Is my text sent to a server?
No. All conversion runs in your browser.
Related tools
Character Counter
A character and word counter with bytes and platform length presets
Sort Lines
Sort or shuffle lines with natural number ordering
Text Diff
A diff checker that highlights what changed between two texts
Text to Speech
Read text aloud with your browser's voices, with speed and pitch controls
Fancy Text Generator
See your text in 25 Unicode styles at once and copy any of them