ForHosting KIT · Testi e IA

Riempire alla larghezza visiva

Allinei colonne che mescolano testo latino e dell'Asia orientale: 東京 occupa 4 colonne, quindi riempirlo fino a 8 aggiunge solo 4 spazi, non 6. I caratteri larghi e quasi tutte le emoji contano come due colonne. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Testo
東京
Larghezza
8
Lato
Right
Ottiene
Risultato
東京
Carattere
Lunghezza originale
2
Larghezza visiva originale
4

Riempire una stringa perché le colonne restino allineate in un terminale è un problema di larghezza visiva, non di conteggio dei caratteri. Ideogrammi dell'Asia orientale, sillabe hangul, lettere latine a larghezza piena e la maggior parte degli emoji occupano due colonne in un carattere monospazio, mentre i segni combinanti, i selettori di variazione e i joiner a larghezza zero non ne occupano alcuna. Un riempimento basato sulla lunghezza JavaScript disallinea qualsiasi cella che mescoli latino e giapponese, cinese o coreano. Questo strumento misura le colonne di visualizzazione nello stile East Asian Width e inserisce un carattere di riempimento di una colonna a sinistra, a destra o su entrambi i lati finché non si raggiunge il numero di colonne obiettivo.

Come si misura la larghezza visiva di colonna

In un terminale monospazio tipico ogni lettera, cifra e segno di punteggiatura ASCII occupa una colonna. Quel modello mentale si spezza non appena la stringa contiene un carattere il cui East Asian Width è Wide o Fullwidth. Ideogrammi unificati CJK, sillabe hangul, cifre a larghezza piena (le forme ideografiche da zero a nove) e il blocco latino a larghezza piena occupano ciascuno due colonne.

I segni combinanti delle categorie Mn o Me, i caratteri di formato, le vocali mediali e le consonanti finali jamo dell'hangul, i selettori di variazione e il joiner a larghezza zero occupano zero colonne e si attaccano al grafema precedente. Le coppie di indicatori regionali che formano un emoji bandiera sono trattate come un unico cluster di due colonne, e gli emoji uniti con un joiner a larghezza zero restano un cluster di larghezza due anziché una pila di pittogrammi indipendenti.

I caratteri a larghezza ambigua, come le lettere greche e alcuni simboli, seguono la convenzione POSIX e occidentale e contano come una colonna, il che coincide con la maggior parte dei terminali Linux e macOS fuori da una localizzazione dell'Asia orientale. I caratteri di controllo, tabulazione e a capo compresi, sono rifiutati: la larghezza del tab non è una proprietà della stringa, e questo strumento riempie una cella, non un'intera tabella.

L'algoritmo percorre i punti di codice Unicode, mai le coppie surrogato UTF-16, così un singolo emoji fuori dal Basic Multilingual Plane è un carattere, non due. Il risultato è lo stesso conteggio di colonne che Lei otterrebbe da una misura prudente in stile wcwidth, esattamente ciò che serve prima di aggiungere caratteri di riempimento perché un nome giapponese e uno SKU latino condividano un bordo destro dritto.

Dove il riempimento a larghezza visiva compare nel lavoro reale

Gli autori di CLI, i formattatori di registri e chiunque stampi una tabella in carattere monospazio incontrano questo problema la prima volta che un valore giapponese, cinese o coreano cade in una colonna dimensionata con la lunghezza della stringa. I numeri di fattura stanno accanto ai nomi di prodotto; un nome CJK di due caratteri JavaScript occupa quattro colonne di terminale e spinge la colonna del prezzo a destra.

Le tabelle Markdown, i pannelli di stato di un README e le stampanti termiche di scontrini hanno lo stesso vincolo quando una cella mescola scritture. Le pipeline di dati che emettono file di esportazione a larghezza fissa per i mercati dell'Asia orientale non possono usare un riempimento per conteggio di caratteri senza rompere il layout che si aspetta il parser bancario o mainframe a valle. Preferisca questa pagina quando l'intento di ricerca è riempire alla larghezza monospazio, larghezza visiva, East Asian Width, wcwidth o allineare colonne CJK in un terminale.

Il pad a sinistra o con zeri di identificatori ASCII è un'altra query e appartiene allo strumento di pad per conteggio di caratteri; questa pagina affronta il problema di allineamento delle colonne che compare solo quando caratteri larghi entrano nella cella.

Allineare celle CJK nelle tabelle di terminale

Riempia a destra celle miste di latino e giapponese, cinese o coreano fino a una larghezza visiva condivisa così prezzo e stato restano diritti nell'uscita CLI.

Campi di esportazione dell'Asia orientale a larghezza fissa

Riempia con spazi nomi di prodotto e indirizzi fino al budget di colonne che un file legacy a larghezza fissa si aspetta, contando i caratteri a larghezza piena come due colonne.

Centrare banner a scritture miste

Riempia entrambi i lati di un titolo breve che contiene CJK o emoji così una riga di scontrino o un'intestazione di registro monospazio risulta visivamente centrata.

In che cosa differisce dal riempimento ordinario di stringhe?

Il pad ordinario conta i caratteri JavaScript. Questo strumento conta le colonne visive monospazio, quindi 東京 ha larghezza 4, non 2, e le colonne restano allineate quando latino e CJK condividono una riga.

Posso riempire con uno spazio a larghezza piena o un emoji?

No. Il carattere di riempimento deve occupare esattamente una colonna visiva. Usi uno spazio ASCII, 0, un trattino o un altro glifo stretto.

Come si contano emoji e bandiere?

La maggior parte degli emoji occupa due colonne. Una coppia di indicatori regionali (una bandiera) è un cluster di due colonne. Le sequenze con joiner a larghezza zero restano un cluster invece di sommare le larghezze.

Quanto costa il riempimento a larghezza visiva?

Lo strumento del browser è gratuito e gira in locale.

Cosa succede se il testo è già più largo dell'obiettivo?

Non viene tagliato nulla. Lo strumento si ferma e la avvisa invece di accorciare i suoi dati in silenzio, così può scegliere una colonna più larga. Se le larghezze coincidono, il testo torna senza riempimento.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/str/pad-visual-width

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/str/pad-visual-width \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"東京","width":8,"side":"right"}'
{
  "text": "東京",
  "width": 8,
  "side": "right"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "str.pad_visual_width",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

max_chars65536
HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Quando il testo è già più largo dell'obiettivo, la richiesta fallisce con invalid_input invece di troncare i Suoi dati in silenzio.

Che cosa si invia e che cosa si ottiene

Il testo vuoto è ammesso e produce una stringa di solo riempimento della larghezza richiesta. Il char facoltativo è un solo punto di codice la cui larghezza visiva è esattamente una colonna e per impostazione predefinita è uno spazio ASCII; uno spazio a larghezza piena o un emoji di riempimento è rifiutato perché un riempimento di due colonne non può colpire un budget residuo dispari. Numeri e booleani in text sono convertiti in stringhe decimali o true/false; oggetti e array sono rifiutati. Controllo classico: il toponimo giapponese di due caratteri 東京 ha larghezza visiva quattro, quindi riempirlo a destra fino a width otto con spazi produce 東京 più quattro spazi; riempire a sinistra l'ASCII quarantadue fino a width sei con zero produce ancora 000042, come un pad ordinario per un ingresso solo latino. Invii i campi obbligatori text, width e side, più il char facoltativo. Text è la cella da riempire; sono accettati gli alias input, value, data, s, message, string, content e body. Width è il conteggio obiettivo di colonne visive, un intero non negativo; gli alias target, columns, size e n funzionano quando width è omesso. Side deve essere left, right o both, con alias start o l, end o r, e center o c. Un testo più lungo del tetto documentato di caratteri, o un width sopra il massimo documentato, fallisce con invalid_input. In caso di successo la risposta restituisce text, width, side e char, più result con la stringa riempita, original_length e length come lunghezze di stringa JavaScript, original_visual_width e visual_width come conteggi di colonne, pad_count, pad_left, pad_right e operation uguale a pad_visual_width. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento; i fallimenti di convalida, compreso un obiettivo sotto la larghezza visiva attuale, non sono fatturati.

Dove il riempimento a larghezza visiva compare nel lavoro reale

Poiché questa capacità è un motore parse puro, ogni chiamata riuscita costa il prezzo base pubblicato di $0.002, senza token di modello e senza rete in uscita, e una convalida fallita non consuma saldo.

Che succede se il testo è già più largo dell'obiettivo?

La richiesta fallisce con invalid_input. Questo strumento non tronca mai; la larghezza obiettivo deve essere maggiore o uguale alla larghezza visiva misurata.

Leggi la documentazione completa del KIT →