# Da maiuscole a camelCase: 14 formati con accenti preservati

> Convertitore di case online del testo in 14 formati: UPPERCASE, lowercase, camelCase, snake_case, kebab-case, PascalCase. Accenti italiani preservati.

Strumento gratuito nel browser (nessun upload): https://www.mauriziofonte.it/strumenti/convertitore-case-testo

Converte tra **14 formati di case** diversi: UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, SCREAMING_SNAKE, kebab-case, COBOL-CASE, dot.case, path/case, alternating, INVERSE. Locale-aware (italiano e altri europei): le lettere accentate restano accentate, niente fold cieco.

## Come usare il convertitore

1. **Incolla il testo** - Scrivi o incolla nel campo input. Il tool converte tutti i 14 formati simultaneamente al typing (debounced).
2. **Scegli il locale** - Italiano per gestione corretta di à, è, é, ì, ò, ù: vengono mantenute accentate dopo upper/lower, e Title Case usa la lista standard di parole brevi (e, di, del, della) come minuscole.
3. **Copia il formato che ti serve** - Click sul bottone Copy nella riga del formato di interesse. Funziona anche con browser senza Clipboard API (fallback automatico).
4. **Riusa** - I formati programming-friendly (camelCase, snake_case, kebab-case) sono pronti per uso diretto come nomi di variabili, file, URL slug, identifier database.

## Perché un altro case converter

I convertitori di case generici della SERP gestiscono male gli accenti italiani. Test rapido: prendi "perché" e clicca UPPERCASE su un convertitore tipico. Il risultato corretto è "PERCHÉ", con l'accento conservato. Molti tool sbagliano: stripiano l'accento, oppure lo trasformano in apostrofo, oppure rompono il rendering.

Qui il convertitore usa `String.prototype.toLocaleLowerCase` e `toLocaleUpperCase` con il locale specificato (it/en/de/es/fr). Per i formati programming (camelCase, snake_case, kebab-case) la tokenizzazione separa parole su spazi/dash/underscore/punti/slash, gestisce camelCase split (lowercase->Uppercase boundary), e mantiene gli accenti dentro le parole (snake_case di "Città di Torino" diventa `città_di_torino`, non `citta_di_torino` distrutto). Per slug URL-friendly (rimozione accenti) usa il **generatore di slug** dedicato del reame, che ha la mappa di translit corretta.

## Glossario

- **camelCase**: Formato dove la prima parola è lowercase e ogni parola successiva inizia con maiuscola: `userFullName`. Standard JavaScript, Java, C#, Swift per nomi di variabili.
- **PascalCase**: Come camelCase ma anche la prima parola inizia con maiuscola: `UserFullName`. Standard per classi/tipi in molti linguaggi.
- **snake_case**: Tutte le parole lowercase separate da underscore: `user_full_name`. Standard Python, Ruby, Rust, SQL.
- **kebab-case**: Tutte le parole lowercase separate da trattini: `user-full-name`. Standard URL slugs, CSS class, HTML attributi.
- **Title Case**: Prima lettera di ogni parola maiuscola, tranne articoli, preposizioni, congiunzioni brevi (in italiano: e, o, di, da, in, per, con). Tipico per titoli editoriali.

## Domande frequenti

### Come gestisce le lettere accentate italiane?

Le mantiene. `perché`, con l'accento Unicode corretto, diventa `PERCHÉ` in UPPERCASE e resta accentato in ogni altra trasformazione. Lo stesso vale per à, è, é, ì, ò, ù.

### Title Case considera articoli e preposizioni come minuscoli?

Si, in modalità italiana. La lista usata: e, o, a, al, la, le, lo, gli, il, i, di, da, in, su, per, con, tra, fra, del, dei, delle, della, dello, degli, un, una, uno. Non sono mai capitalizzate eccetto se prima parola del titolo.

### camelCase di una sola parola la lascia invariata?

La rende sempre lowercase (camelCase di "HELLO" è "hello"). Per mantenere maiuscole originali serve un formato diverso (es. PascalCase per inizio maiuscola).

### Funziona con simboli Unicode (emoji, kanji)?

Si per l'output testuale, ma snake/kebab/camel splitting tratta i caratteri non-Latin come parte di parole singole. Test: `say hello 👋 world` -> snake_case `say_hello_👋_world`. Per dataset multilingual conviene il generatore di slug che fa transliterazione.

### Posso convertire batch di liste?

Non in V1 esplicitamente. Però incollando una lista multi-riga ognuna mantiene le sue interruzioni: il convertitore opera character-by-character per upper/lower e word-by-word per camel/snake. Per batch CSV vero conviene uno script (Python `str.title()`, JavaScript `map`).

### Differenza fra Title Case e Sentence case?

Title Case capitalizza ogni parola eccetto le brevi: **Città di Torino e perché funziona**. Sentence case capitalizza solo la prima parola di ogni frase (delimitata da.!?): **Città di torino e perché funziona**. Title case è per titoli, sentence case per body text e descrizioni.

### Funziona offline?

Sì. Tutta la conversione avviene direttamente nel browser; una volta caricata la pagina, il tool continua a funzionare anche senza connessione.

---
Uno strumento di Maurizio Fonte, senior backend engineer. Tutti gli strumenti: https://www.mauriziofonte.it/strumenti/
