X-tekenräknare (Twitter)
Introduktion
X räknar inlägg med ett system som få känner till: viktade tecken. Länkar krymper till exakt 23 tecken oavsett längd, kinesiska/japanska/koreanska glyfer och emoji väger dubbelt så mycket som engelska bokstäver, och en handfull Unicode-intervall får specialbehandling. Resultatet är en gräns som regelbundet överraskar – ett utkast som ser säkert under 280 ut avvisas, och ingen kan se varför.
Toollects X-tekenräknare (Twitter) tillämpar de verkliga reglerna, inte en naiv stränglängd. Klistra in ett utkast så uppdateras sex räknare vid varje tangenttryckning – viktad summa, hashtag-antal, mention-antal, URL-antal, radbrytningar och styckebrytningar – jämte listor av varje hashtag, mention och länk som parsaren detekterar. Detektionsgränserna verifierades fall för fall mot live x.com-beteende, inklusive de märkliga hörnen.
Allt körs lokalt i din webbläsare. Ingen API-nyckel, ingen registrering, ingen förfrågan alls – ditt utkast lämnar aldrig din enhet, och talen blir omedelbara eftersom ingenting väntar på nätverket.
Användningsområden
Sociala mediechefer som kontrollerar schemalagda inlägg
Schemaläggningsverktyg räknar ofta fel X-utkast eftersom de använder enkel längd. Kör texten genom denna räknare innan den köas – den viktade summan och urllistan talar om exakt vad X accepterar, och överskridningsvarningen visas så snart utkastet passerar linjen.
CJK-författare mot tyst avkapning
Japanska, kinesiska och koreanska inlägg får plats med ungefär 140 glyfer i samma budget som en engelsk post använder för 280. Att se den viktade siffran bredvid ditt utkast gör den osynliga fördubblingen planerbar i stället för att upptäcka den efter publicering.
Utvecklare av botar och automatisering
Om din bot komponerar inlägg programmatiskt fungerar denna räknare som en specifikationsreferens – vikttabellerna, de fasta länkkostnaderna och hashtag-/mention-gränstabellerna dokumenterar regel för regel vad parsaren implementerar.
Författare över plattformar
Att anpassa ett budskap mellan plattformar betyder att respektera olika gränser och olika matematik. Para ihop detta verktyg med sin syskon, Instagram Caption Analyzer, och kontrollera båda destinationerna utan att gissa vilken plattform som väger vad.
Hur det fungerar
Räknaren kör fyra steg helt i din webbläsare och uppdateras live vid varje tangenttryckning:
- Normalisera texten. Inmatningen konverteras först till Unicode NFC-form, så att ett dekomponerat é (bokstav plus kombinerande accent) räknas en gång istället för två – precis som X själv normaliserar före räkning.
- Extrahera och platta till länkar. Varje länk X känner igen tas ut och ersätts med en platt kostnad på 23 tecken – både https://- och http-adresser och protokolllösa domäner som twitch.tv, vars ändelse finns i de officiella toppdomänlistorna. Avslutande interpunktion som meningspunkten stannar hos omgivande text istället för hos länken.
- Segmentera i grafeemkluster. Den återstående texten delas med Intl.Segmenter i användarupplevda tecken – en emojifamilj byggd av sju kodpunkter, en flagga byggd av två, och en tumme med hudton bildar var och en exakt en enhet.
- Väg varje kluster. Kluster som innehåller emoji väger 2. Allt annat summerar sina kodpunkter mot de officiella lätta intervallerna – 1 om inom, 2 om utanför. Hashtags och mentioner extraheras separat från den länkfria texten enligt x.com-gränserna dokumenterade nedan.
Varje ändring kör hela kedjan igen direkt. Inga alternativ att konfigurera och inga lägen – verktyget tillämpar alltid samma live-x.com-regler.
De viktade räknelreglerna
Här är den fullständiga viktningstabellen som räknaren tillämpar – motsvarande den offentliga twitter-text-konfigurationen X bygger på.
| Tecken | Exempel | Vikt |
|---|---|---|
| U+0000 – U+10FF | Latin, grekiska, kyrilliska, hebreiska, arabiska, hindi, thai, skiljetecken, siffror | 1 |
| U+2000 – U+200D | Allmän interpunktion och zero-width joinern | 1 |
| U+2010 – U+201F | Tankestreck och typografiska citattecken | 1 |
| U+2032 – U+2037 | Primtecken | 1 |
| Allt annat | Kinesiska/japanska/koreanska, hangul, emoji, de flesta andra skrifter | 2 |
Tre specialreglar ligger ovanpå tabellen:
- Varje länk kostar 23. Varje adress som parsern känner igen plattas till exakt 23 tecken oavsett verklig längd – https://- och http-URL:er plus protokolllösa domäner som twitch.tv. En härmning vars ändelse inte är en riktig toppdomän (foo.zzz) förblir vanlig text.
- Emoji-kluster är atomära. Detekteringen arbetar per grafeemkluster – 👨👩👧👦 räknas som ett kluster (vikt 2), flaggor som ett, och hudtonsmodifikatorer smälter samman med sin bas-emoji. Utan klustring skulle den familjen felaktigt addera elva kodpunkter.
- Accenter fälls ihop före räkning. Text normaliseras till NFC, så café skrivet med decomponerad accent räknas 4 tecken, inte 5.
Ett uträknat exempel – utkastet Mer om uppdraget 🚀 https://x.com/a/long/path :
| Del | Beräkning | Kostnad |
|---|---|---|
Mer om uppdraget |
17 lätta tecken | 17 |
| 🚀 | ett emoji-kluster | 2 |
| mellanslag | 1 | 1 |
https://x.com/a/long/path |
tillplattad länk | 23 |
| Totalt | 43 |
Hashtag- och omnämningsgränser
Detekteringen följer gränserna observerade på live x.com genom 36 verifierade testfall – inklusive flera som motsäger vanliga antaganden. Tabellerna listar de avgörande.
Hashtags
| Inmatning | Resultat | Regel |
|---|---|---|
#Japan i början eller efter mellanslag |
✓ | Standardfall |
🇯🇵#Japan, !#Japan, .#Japan, ,#Japan, -#Japan |
✓ | Emoji och dessa skiljetecken blockerar inte hashen |
abc#Japan, 123#Japan |
✗ | En bokstav eller siffra som klistrar sig direkt framför upphäver den |
_#Japan |
✗ | Understreck blockerar också |
&@mention, &#Japan |
✗ | Et-tecknet blockerar (HTML-entitetssäkerhet) |
@#Japan |
✓ | Ett at direkt före hashen blockerar inte |
##Japan, ##Japan, #Japan |
✓ | Extra hash-symboler – halv- eller helbredd – blockerar inte |
#Japan#, #Japan#Japan, #Ja#pan |
✗ | En hash direkt efter taggen dödar den, utan partiell återgång |
#123, #123, #🇯🇵 |
✗ | Taggar kräver minst en bokstav annars bildas sekvensen aldrig |
#1Direction, #日本語, #foo_bar |
✓ | Siffror blandade med bokstäver, Unicode-taggar och understreck fungerar |
Familjen #Japan# överraskar de flesta: Tagtexten i sig är okej, men X kasserar hela kandidaten när en annan hash klistrar sig direkt mot dess slut – och parsaren försöker aldrig en kortare återgång.
Mentions
| Inmatning | Resultat | Regel |
|---|---|---|
.@alice, ,@alice, ?@alice, :@alice, (@alice, /@alice, -@alice |
✓ | Dessa skiljetecken tillåter mentionen |
🇯🇵@alice |
✓ | Emoji tillåter den också |
!@alice |
✗ | Ett utropstecken blockerar mentioner – strängare än för hashtags |
@@alice, #@alice, &@alice, abc@alice, 123@alice |
✗ | At/hash/et-tecken/ordtecken blockerar alla |
@alice@bob |
✗ båda | Handles följda av direkt en ny at kastas bort |
@alice's post |
✓ alice | Possessiven stannar utanför handlen |
@15chars_max_0000 (16 tecken) |
✓ full handle | Parsaren matchar upp till 20 tecken – kontoregistrering stoppar vid 15, detektering gör inte det |
@12345678901234567890123 (23 siffror) |
✓ första 20 | Bortom taket blir resten vanlig text |
Mentioner är medvetet striktare än hashtags på vänster sida (! blockerar här, inte där) och lösare på höger (@alice# behåller sin mention där #Japan# förlorar sin tag). Båda beteendena bekräftades på live x.com innan de kodades.
Myter om teckengränsen
Fyra övertygelser överlever gamla dokumentationer eller ren antagande. Varje fallerar mot dagens x.com.
„Svar räknas ledande mentioner inte." Sant 2017, falskt idag. Att skriva eller klistra in handles i huvudet av ett svar minskar dina tillgängliga tecken exakt som brödtext – verifierat på live x.com under byggandet av detta verktyg. Guider som upprepar undantaget beskriver en pensionerad regel.
„All icke-engelsk text väger dubbel." Fördubblingen börjar över en viss Unicode-punkt. Arabiska, hebreiska, hindi och thai ligger alla inom enviktszonen – ett arabiskt inlägg bär nästan lika mycket text som ett engelskt. Dubbelvikten tillhör CJK, hangul, emoji och skrifter bortom den gränsen.
„Förkorta länkar före publicering." Meningslöst sedan 2010. X ersätter varje länk med sin egen förkortare och debiterar schablonmässiga 23 – om du ger den 13 eller 300 tecken. Förkortning i förväg ändrar ingenting.
„Bilder och citat äter tecken." Bilagor kostar ingenting – upp till fyra foton reser gratis med – och en citerad posts text läggs inte till din. Endast det du faktiskt skriver räknas.
Premium och långa inlägg
Ett X Premium-abonnement höjer taket från 280 till 25.000 tecken på alla betalda nivåer, vilket gör ett inlägg till något närmare en artikel. Två förbehåll väger mer än rubriknumret.
Först dokumenterar X de viktade reglerna för 280-gränsen men har aldrig publicerat hur taket på 25.000 behandlar länkar, emoji eller CJK-text. Varje tredjepartsräknare som hävdar exakt paritet med långformsgränsen gissar. Detta verktyg modellerar medvetet endast de väldokumenterade 280-reglerna istället för att hitta på overifierbara.
För det andra vikar tidslinjer långa inlägg efter ungefär de första 280 tecknen bakom en Visa mer-länk. Vad du än skriver bortom konkurrerar öppningen under samma viktade regler som alla andras inlägg. För allt som måste läsas utan extra klick förblir 280 siffran som räknas – därför är denna räknare användbar även för Premium-konton.
Användning
- Klistra in utkastet i textfältet. Alla sex räknare uppdateras vid varje tangenttryckning.
- Bevaka Tecken-kortet – det blir rött så snart den viktade summan passerar 280, och meddelandet ovanför utdatan förklarar överskridandet.
- Läs detaljlistorna – varje hashtag, mention och länk parsaren hittar visas nedan, duplicerade hopfällda till en chip märkt ×N.
- Kopiera utkastet när det passar – knappen väljer texten och lägger den på urklipp, redo för x.com eller ditt schemaläggningsverktyg.
- Rensa nollställer text och alla räknare i ett steg.
Inmatning som matchar inget stött format rensar utdatan och förklarar sig. Det finns inga alternativ att konfigurera och inga lägen – verktyget tillämpar alltid samma live-x.com-regler.
Handledning
Följ ett realistiskt utkast genom hela kedjan.
Steg 1 – Klistra in ett blandat utkast.
Träning klar ✅ Fullständig rapport https://x.com Fler detaljer snart
En generisk räknare rapporterar 68. Kortet Tecken visar 79. Gapet är den osynliga aritmetiken: bock-emojin väger 2 som eget kluster (+1 jämfört med enkel räkning), och länken plattas från 13 upp till 23 tecken (+10).
Steg 2 – Se länken plattas till. Byt den korta adressen mot en mycket längre:
Träning klar ✅ Fullständig rapport https://defense.example.gov/news/2026/exercise-report Fler detaljer snart
Länken växte 40 tecken, ändå flyttar sig inte Tecken-kortet från 79 – listan Upptäckta URLs bekräftar att den nya adressen kostar samma schablonmässiga 23. En enkel räknare skulle hoppa till 108; därför sparar förkortning av länkar i förväg ingenting på X.
Steg 3 – Lägg till hashtags som x.com parsa dem. Lägg till #Japan #Träning. Båda extraheras rent och adderar 6 respektive 8 viktade tecken plus de två mellanrummen – kortet visar 95.
Steg 4 – Bryt en hashtag avsiktligt. Skriv #Ja#pan. Inget fragment visas i listan – en hash mot slutet av en tagg ogiltigförklarar hela kandidaten. Ångra tillbaka till fungerande version.
Steg 5 – Passera linjen. Duplicera CJK-inledningen tills kortet blir rött och överskridningsmeddelandet visas. Trimma tills grönt igen – att se siffran falla gör 2-per-glyf-aritmetiken intuitiv.
Steg 6 – Kopiera och leverera. Tryck Kopiera och klistra in på en enkel HTML-sida. Öppna den – composer accepterar utkastet första gången. Samma regler, samma nummer.
Proffstips
- Budgetera länkar till 23 styck före skrivandet. En länk lämnar 257 tecken; tre lämnar 211. Reservera budgeten först så behöver utkastet aldrig kirurgi senare.
- Behandla komplexa emoji som lyxutgifter. Varje kluster kostar 2, och reaktionskedjor summeras snabbt – tre konfetti väger mer än ordet wow.
- Ladda kroken framåt. Tidslinjer trunkerar runt vikfallet; det som ligger förbi den viktade mittpunkten tjänar sällan klick. Lägg poängen tidigt.
- Håll hashtags i en ren näve. X inför ingen hård hashtag-straff, men taggar mitt i ordet parsar aldrig – lämna ett mellanslag eller radbörjan före varje hash.
- Klistra in från Word utan oro. Typografiska citattecken och streck ligger i enviktsinterpunktionsintervallerna, och NFC-normaliseringen fäller decomponerade accenter ihop till en.
- Para ihop med Caption Analyzer för cross-posting. Samma utkast, annan plattformsmatematik – X väger och plattas länkar, IG följer summor mot flexibla 2200 med en fem-hashtag-riktlinje.
- Lita på det röda kortet framför dina ögon. Om Tecken säger över är posten över – den viktade aritmetiken ser kostnader som enkla räknare inte kan se.
Alternativ
| Alternativ | Viktade regler | Gränsexakt detektering | Live-statistik | Privat/offline |
|---|---|---|---|---|
| Detta verktyg | Ja – verifierat på live x.com | Ja – 36 testade fall | Sex räknare + itemlistor | Ja |
| Composer-räknaren i x.com | Ja | Ja | Endast total, ingen uppdelning | N/A (på plattform) |
| Generiska teckenräknare | Nej – enkel längd | Nej | Partiell | Oftast |
| Scheduler-inbyggda kontroller | Sällan – enkel längd | Nej | Varierar | Nej |
| twitter-text-biblioteket | Ja – referensimplementering | Ja | Bygg själv | Beror på värd |
Composer-räknaren i x.com är auktoritativ men erbjuder ett enda tal utan diagnos. Generiska räknare är orsaken till att utkast avvisas – de ignorerar viktningen helt. Schedulers ärver samma fel. twitter-text-biblioteket är sanningens källa om du vill bädda in hela motorn – till priset av ett beroende. Denna räknare intar det praktiska mittläget – referensklassade regler utan setup.
Mot twitter-text-biblioteket
X publicerar ett open source-bibliotek, twitter-text, som definierar de kanoniska räknings- och extraktionsreglerna – denna räknare implementerar samma publika specifikation istället för att anropa någon API.
| Kapacitet | twitter-text biblioteket | Denna räknare |
|---|---|---|
| Viktad längd | Exakt – referensimplementering | Samma vikter och intervall |
| Linkdetektering | Uttömmande grammatik med hundratals giltiga toppdomäner | Protokolllösa domäner kontrollerade mot samma officiella suffixlistor – https-länkar hoppar över den kontrollen |
| Emoji-klustring | Konfigstyrd parsing | Grafeemsegmentering med standard heuristiken för emoji-block |
| Hashtag-/mention-gränser | Referensregexer | Gränser transkriberade från live x.com-tester (36 fall) |
| Integration | Ett bundlat beroende för din build | Inget – öppna sidan och skriv |
Domänidentifiering utan protokoll delar nu bibliotekets grund – denna räknare bäddar in samma officiella gTLD/ccTLD-suffixlistor, så att twitch.tv räknas som en länk medan foo.zzz förblir text, exakt som biblioteket beslutar. Två ärliga gap återstår – https-länkar accepteras i varje rimlig form utan suffixkontrollen, och de inbäddade listorna fryses på open-source-versionen, så en toppdomän införd efteråt kan saknas. För vanliga inlägg stämmer talen överens; allt annat – vikter, klustring, gränser – följer samma spec, och gränstabellerna kommer från liveplattformstester snarare än bibliotekstranskription.
Räknaren mot Caption Analyzer
Toollect levererar syskonverktyg för de två största sociala plattformarna, och deras skillnader illustrerar varför en räknare aldrig passar alla:
| Fråga | Caption Analyzer (Instagram) | Denna räknare (X) |
|---|---|---|
| Gräns | 2.200 tecken | 280 viktade tecken |
| Räkningsbas | UTF-16 längd | Viktade grafeemkluster |
| Enkel emoji | 2 (astrala enheter) | 2 (klusterregel) |
| Komplexa emojifamiljer | Väger varje kod-enhet – en familj kostar mer än 2 | Alltid exakt 2 per kluster |
| Länkar | Vanlig text – ingen utplattning | Platta 23 styck |
| Plattformsspecifika gränser | Fem-hashtag-riktlinje | Svarsmentioner räknas; gränser per tabellerna ovan |
Ingen approach är fel – varje speglar sin plattform. Instagrams mer generösa gräns tolererar enklare räkning, medan X strama budget kräver den viktade precisionen. En ärlig not om syskonet: en ZWJ-emojifamilj inklistrad i caption-analysatoren räknar sina råa kod-enheter (en familj kostar mer än 2), eftersom Instagram aldrig dokumenterat sin exakta metod och UTF-16 var det pragmatiska valet. Postar du samma familj på båda plattformarna, debiterar X den 2 och analysatorn rapporterar mer.
Vad den inte gör
- Den bäddar inte in tidslinjer, profiler, listor, space eller hashtags. Det är andra X-ytor med annan uppmärkning; slutpunktens profilstöd producerar tidslinjeankare, inte inläggskort.
- Den delar inte trådar. Över gränsen betyder trimma eller tråda manuellt; verktyget rapporterar, det skriver inte om.
- Den garanterar inte bit-för-bit-paritet med X-servrar. Protokolllösa domäner kontrolleras mot de officiella suffixlistorna, https-länkar hoppar över den kontrollen och de inbäddade listorna fryses på open-source-versionen – patologiska adresser kan teoretiskt klassas annorlunda. Vanliga inlägg stämmer.
- Den verifierar inte att handles finns. @nonexistent_account_12345 parsas fortfarande som mention – giltighet är en plattformsuppslagning, inte en grammatikfråga.
- Den kontrollerar inte bio-, DM- eller namngränser. De fälten har andra tak (160, 10.000 respektive 50) utanför detta verktygs mono-ändamål.
- Den stylar inte widgeten. Färger, typsnitt och krom inne i det renderade kortet är X:s sak. Endast placering (justering, bredd) och närvaro (konversation, media) är dina.
- Den installerar inte koden eller postar åt dig. Utdata är kunskap, inte handlingar; verktyget kan inte nå in i ditt CMS eller din scheduler.
Felsökning
| Problem | Orsak | Lösning |
|---|---|---|
| Mitt utkast ser under 280 ut men kortet är rött | Viktade kostnader – länkar på 23, CJK/emoji på 2 | Kontrollera detaljlistorna; byt ut länken eller trimma dubbelvägd text tills den passerar |
| Urllistan visar en länk jag inte tänkte posta | Igenkända länkar räknas – inklusive protokolllösa domäner som twitch.tv | Formulera om så adressen inte ingår, eller acceptera dess kostnad på 23 |
| #123 visas inte under Hashtags | Rent numeriska taggar är inte hashtags på X | Lägg till en bokstav i taggen, eller hoppa över den |
| En hashtag efter en emoji saknas | Bör inte hända – emoji-prefix är giltiga | Bekräfta att ingen bokstav/siffra/understrykning sitter direkt före hashen; rapportera den exakta inmatningen om det fortfarande fallerar |
| Antalet skiljer sig något från en annan webbplatss räknare | De flesta konkurrenter använder enkel längd | Denna räknare tillämpar de officiella vikterna; lita på det röda kortet framför generiska totals |
| Accentuerade ord räknas annorlunda någon annanstans | Andra verktyg hoppar över NFC-normalisering | Denna räknare normaliserar först – dess antal matchar X |
| Kopiering gjorde ingenting | Klippbordstillstånd nekat av webbläsaren | Tillåt urklippståtkomst eller välj texten manuellt och kopiera med Ctrl/Cmd+C |
Integritet och datahantering
Detta verktyg är ärligt om sin trafik – medlem i sajtens nollförfrågningsfamilj, den striktaste integritetsklassen Toollect levererar.
- Ingenting lämnar din enhet. Utkast, hashtags, mentioner och räkningar existerar bara i din webbläsarflik. Ingen Toollect-server, ingen tredjepartsslutpunkt, ingen analys berör texten du skriver.
- Inget konto, ingen lagring, inga spårcookies. Stäng fliken och varje spår försvinner – det finns ingen historik att rensa eftersom ingen skrevs.
- Räknaren fungerar offline. När sidan laddats kan du klippa anslutningen och fortsätta räkna.
- Urklippsbruk är explicit. Text når urklipp bara när du trycker Kopiera – aldrig automatiskt.
Behöver du samma integritetsfilosofi för länkanalys utför X (Twitter)-URL-parsern på denna sajt hela sitt arbete med noll nätverksförfrågningar också.
Teknisk specifikation
Detaljer:
- Gräns – 280 viktade tecken; varje länk plattas till 23; alla andra enheter väger 1 eller 2 enligt intervalltabellen
- Lätta intervall – U+0000–U+10FF, U+2000–U+200D, U+2010–U+201F, U+2032–U+2037 (vikt 1); alla andra kodpunkter väger 2
- Normalisering – inmatning konverterad till Unicode NFC före räkning
- Segmentering – Intl.Segmenter i grafeemläge; kluster med emoji-markörer (VS16, ZWJ, keycap, U+1F000+, U+2600–27BF) väger atomärt 2; återgång till kodpunktsiteration där Segmenter saknas
- Linkgrammatik – en https://- eller http-adress (ledande gräns vid början/mellanslag/öppnande parentes) eller en protokollös domän vars TLD finns i de officiella gTLD/ccTLD-listorna; en domän som sitter direkt efter bindestreck/understreck/punkt/snedstreck tolkas inte; avslutande interpunktion undantagen från länken och räknad som text
- Hashtaggrammatika – #/# plus minst en bokstav inom [\p{L}\p{N}_]+; föregående tecken får inte vara bokstav, siffra, understreck eller et-tecken; följande tecken får inte vara hash-symbol; helbreddssymboler accepterade
- Mention-grammatika – @/@ plus 1–20 tecken av [A-Za-z0-9_]; föregående tecken får inte vara ordtecken, utropstecken, at, hash eller et-tecken (helbredd inkluderad); en följande at kastar kandidaten
- Statistiker – viktad summa, hashtag-/mention-/URL-antal, radbrytnings- och styckebrytningsantal, plus deduplicerade item-tallies med ×N-märken
- Nätverkstrafik – noll; all beräkning är lokal JavaScript
- Webbläsarstöd – alla moderna webbläsare med Intl.Segmenter (Chrome 87+, Safari 14.1+, Firefox 125+) och Clipboard API
Funktioner
- Räknar efter X:s verkliga viktade regler – länkar kostar exakt 23 tecken, CJK och emoji väger 2, verifierat på live x.com
- Gränsexakt hashtag- och omnämningsdetektering – 36 randfall testade på live x.com, från emoji-prefix till dubbla hash-symboler till ihopklistrade fragment
- Sex live-statistiker medan du skriver – tecken, hashtags, omnämnanden, URLs, radbrytningar och styckebrytningar
- Unicode-korrekt av design – emojifamiljer räknas som ett kluster, decomponerade accenter normaliseras före räkning, arabiska väger 1
- Speglar dagens X, inte 2017 års folktro – ledande svarsmentioner räknas mot gränsen, exakt som plattformen beter sig nu
- Gratis, privat och omedelbar – allt körs i din webbläsare utan förfrågningar, ingen API-nyckel, ingen registrering