Convert Text to lowercase

Convert any text to lowercase instantly. Normalizes mixed-case strings for comparison, URL generation, search indexing, and case-insensitive processing.

ZERO UPLOAD · ALL LOCAL
  1. Type or paste text into the input box — all 14 conversions appear instantly.
  2. The Character Case Formats section shows 5 character-level transformations.
  3. The Word Case Formats section shows 9 word-level transformations.
  4. Use the Copy buttons to grab any individual result.
  5. Click "Use as input" to chain conversions (e.g. snake_case → camelCase → kebab-case).

Worked examples for this use case

Mixed-case user emails → normalized storage format

Title Case tags → searchable lowercase tags

Before
JavaScript
Web Development
Open Source
Machine Learning
After
javascript
web development
open source
machine learning

INPUT TEXT

CHARACTER CASE FORMATS

lower case
UPPER CASE
Capitalized Case
aLtErNaTiNg cAsE
InVeRsE CaSe

WORD CASE FORMATS

camelCase
PascalCase
snake_case
SCREAMING_SNAKE
kebab-case
dot.case
path/case
sentence case
Title Case

lowercase Converter,Convert Text to All Lowercase

Before comparing strings, generate slugs, or prepare search indexes, lowercase normalization removes avoidable ambiguity. When data arrives from user input or external APIs in mixed case, lowercasing it first makes the next processing step safer.

Yet lowercase is also a standalone output format for specific contexts: CSS property values, HTTP header names, and HTML attribute values are all lowercase by specification. Converting a list of mixed-case values in one pass avoids individual corrections.

Where lowercase normalization is required

Email addresses are case-insensitive by RFC 5321 specification,1 but servers and databases compare them as strings. Storing emails in lowercase before indexing prevents duplicates like "[email protected]" and "[email protected]". URL paths in most web servers are case-sensitive on Linux but case-insensitive on macOS and Windows, causing cross-platform routing bugs.2 Lowercasing all URL slugs before saving eliminates this ambiguity. Furthermore, HTML attribute values like type, rel, and method are specified as lowercase.3 HTTP header field names are case-insensitive by the HTTP specification,4 but many server implementations normalize them to lowercase internally. Search engines treat lowercase and uppercase URL variants as separate pages unless a canonical tag or redirect is in place, making lowercase normalization an SEO concern as well as a technical one.

Edge cases: locale differences and non-alphabetic characters

The converter uses JavaScript's toLowerCase(), which handles most Latin-script characters correctly. Locale-specific cases exist: the Turkish language distinguishes dotted I from dotless i, so lowercasing "ISTANBUL" in a Turkish locale context produces "istanbul" correctly, but JavaScript's default toLowerCase() does not apply the Turkish locale.5 For the vast majority of web application use cases (ASCII identifiers, email addresses, URL slugs), this is not a concern. Non-alphabetic characters (numbers, punctuation, emoji, CJK ideographs) pass through unchanged because they have no case distinction. The German ß lowercases to itself (it has no uppercase form in traditional German orthography, though the capital ẞ was added to Unicode in 2017). For applications that process multilingual content, testing with representative samples from each supported language catches locale-specific issues before they affect production data.

Workflow: normalizing user input before database storage

Building on this, a practical pattern: before inserting user-provided fields into a database (email addresses, usernames, and tags), run them through a lowercase normalizer. This tool lets you test the normalization with real data before writing the application code. Paste a list of raw user input samples, confirm the lowercased output looks correct, and use the same logic (str.toLowerCase() or str.lower()) in your application. CapyToolkit processes each line independently. For user-generated tags and categories, lowercase normalization at submission time prevents the common drift where "JavaScript", "javascript", and "Javascript" coexist as separate entries for the same concept. Running your existing tag list through this converter during a one-time migration identifies exactly which duplicates would merge, giving you a concrete count of the cleanup impact before you write the migration script.

Generating URL slugs with consistent lowercase output

URL paths on Linux servers are case-sensitive. "articles/my-Post" and "articles/my-post" resolve to different routes, and a capital letter in a slug causes 404 errors that are hard to trace in production logs. Lowercasing all URL slug components before saving prevents this class of error entirely. Building the lowercase normalization into your slug generation pipeline from the start is far cheaper than retrofitting redirects after search engines have already indexed inconsistent URLs. When you generate slugs from user-provided titles at request time rather than at publish time, a single lowercase call in your slug function ensures that every URL your application produces follows the same convention regardless of how the author capitalized the original title.

Slug generation from titles and headings

A typical slug pipeline takes a title ("My Blog Post"), lowercases everything, replaces spaces with hyphens, and strips non-alphanumeric characters. The lowercasing step is where inconsistency most often enters: a CMS field that accepts either case, a manually typed slug with an uppercase letter, or a title copied from a document in Title Case. Running the raw title through this converter before passing it to a slug function produces a consistent starting point. You then apply the hyphen and strip steps in your application code.

Canonical URLs and duplicate content prevention

Google treats https://example.com/Blog/Post and https://example.com/blog/post as separate URLs. If both exist, they split link equity and can trigger a duplicate content flag. Serving all URLs from lowercase paths and issuing 301 redirects for uppercase variants is the standard fix. Before generating URLs in bulk, run any user-provided path components through this tool to verify the lowercase form before writing the normalization into your application.

Testing normalization with real user input before writing application code

User input arrives in every capitalization shape. Before writing a normalization function, testing the logic against realistic data samples reveals edge cases that unit tests written in isolation may not cover. Building the lowercase normalization into your data pipeline from the start prevents the duplicate content and inconsistent lookups that arise when the same string arrives in different cases from different sources. Paste a sample of real user input from your application logs into this converter, verify the lowercase output handles every edge case you expect, and then implement the same logic in your production code with confidence that it covers the patterns your users actually submit.

Email address normalization across character sets

Most email servers treat the local part of an address as case-insensitive, but comparing stored emails requires a consistent format. Paste a sample of real email addresses from your signup form data into this converter and verify the lowercase output looks correct. Edge cases like addresses with multiple dots, plus signs, or domain parts with mixed case should all resolve to a predictable lowercase form. If any output surprises you, that reveals a gap in your normalization logic before you ship it.

Sub-addressing with the plus sign is preserved through lowercasing because the plus and everything after it sits in the case-insensitive local part. A user who registers [email protected] and later [email protected] keeps both aliases intact after normalization. The only characters that change are the letters, so tags and routing rules built on the plus sign survive the transform untouched.

Tag and category string normalization

Tags created by multiple authors in a shared CMS tend to drift: "javascript", "JavaScript", and "Javascript" exist as separate tags for the same concept. Lowercasing all tags at submission time (or during a one-time migration) collapses the duplicates. Paste your current tag list into this tool, copy the lowercase output, compare against your existing canonical tag list, and you can see exactly which duplicates would merge. CapyToolkit processes each line independently.

When to use this

Use this when normalizing email addresses for storage, preparing strings for case-insensitive comparison, or formatting HTML attribute values, and to stop uppercase slugs from 404ing before user-supplied titles reach your routing layer on a case-sensitive server.

Examples

Mixed-case user emails → normalized storage format

Title Case tags → searchable lowercase tags

Before
JavaScript
Web Development
Open Source
Machine Learning
After
javascript
web development
open source
machine learning
Sources
  1. 1.

    J. Klensin, "Simple Mail Transfer Protocol," RFC 5321, IETF, October 2008. https://www.rfc-editor.org/rfc/rfc5321

  2. 2.

    Google, "Consolidate duplicate URLs," Google Search Central, developers.google.com, accessed June 2026. https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls

  3. 3.

    WHATWG, "HTML Living Standard: Attributes," whatwg.org, accessed June 2026. https://html.spec.whatwg.org/multipage/syntax.html#attributes

  4. 4.

    IETF, "Hypertext Transfer Protocol Version 2 (HTTP/2)," RFC 7540, IETF, May 2015. https://www.rfc-editor.org/rfc/rfc7540

  5. 5.

    "Turkish Case Problem," W3C Internationalization, w3.org, accessed June 2026. https://www.w3.org/International/wiki/Turkish_case_problem

FAQ