Short answer: Paste a long TXT value, such as a 2048-bit DKIM key or a long SPF record, and the splitter breaks it into quoted strings of at most 255 bytes, formatted for a BIND zone file and for Cloudflare. Paste quoted strings instead and it joins them back into one value so you can check what receivers will read.
Built and tested in Chromium on 6 Oct 2026; runs entirely in your browser.
Table of Contents
How to use the TXT splitter
- Paste the value. Line breaks inside a plain value are removed; quoted strings are read with their escapes.
- Leave Direction on automatic: quoted input is joined, plain input is split. Choose a direction to force it.
- Optionally enter the record name, such as
default._domainkey, to get a complete zone-file line. - Press Convert and copy the form your DNS host needs.
What the output means
| Field | Meaning |
|---|---|
| Value length | Size in bytes. Characters outside plain ASCII take more than one byte, so bytes are what count. |
| Strings needed | How many 255-byte strings the value needs. |
| Cloudflare / quoted form | All strings on one line, each in double quotes. |
| BIND zone file | A ready-to-paste record; long values are wrapped in parentheses over several lines. |
| Joined value | In join mode: the strings concatenated with nothing in between, which is how SPF, DKIM and DMARC readers see them. |
RFC 1035 limits each character-string in a TXT record to 255 bytes, but one record can hold several strings. RFC 7208 says SPF records made of several strings are joined without adding spaces, and DKIM and DMARC are read the same way, so where the split falls does not matter.
Examples
Split a DKIM record for BIND
default._domainkey IN TXT (
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
"...IDAQAB" )
Check a record copied from cPanel
cPanel writes long values to the zone file as several strings and escapes semicolons, for example "v=DKIM1\; k=rsa\; p=MIIB…" "…IDAQAB\;" (seen on our cPanel 11.138 lab server). Paste the line in join mode: the tool removes the record name, reads the escapes and shows the joined value.
Cloudflare
Cloudflare’s DNS FAQ explains that a value longer than 255 characters is split into several quoted strings automatically, which is why a record can show a quote in the middle. You can paste the plain value, or the quoted form from this tool.
Common mistakes
- Adding a space between strings. A space inside the quotes becomes part of the value and breaks a base64 key. The space between quoted strings is fine.
- Pasting the quotes into a panel that adds its own. In cPanel’s Zone Editor and most web panels, paste the plain value.
- Two SPF records instead of one split record. Splitting keeps one record. Two separate
v=spf1TXT records make SPF fail with a permerror. - Unescaped quotes or backslashes. In a zone file they must be written as
\"and\\. The tool does this for you. - Very large records. Values over about 2,048 bytes are rejected by some DNS hosts; the tool warns you.
Official documentation: RFC 1035 section 3.3.14 (TXT) · RFC 7208 section 3.3 (multiple strings) · Cloudflare DNS FAQ
Related: DNS Lookup: Query Any Record Type · DKIM Checker · SPF Record Generator · MailBaby Cloudflare DNS: 3 Records (SPF, DKIM, DMARC) · SPF, DKIM and DMARC in cPanel DNS: Setup and Checks
See also: SPF Too Many DNS Lookups: Fix PermError and the 10-Lookup Limit · SPF Lookup Counter: Check the 10 DNS Lookup Limit · Find a DKIM Selector: Headers, Panel Defaults and Key Checks · Split a 2048-bit DKIM TXT Record Over 255 Characters · DKIM Key Generator: 2048-bit Key Pair and DNS Record
Frequently asked questions
What is the maximum length of a TXT record?
Each string inside a TXT record is limited to 255 bytes, but a record can contain several strings. Many DNS hosts also cap the whole record, often around 2,048 bytes or more.
Does splitting a DKIM key break it?
No. Receivers join the strings with nothing in between, so the key is read exactly as before, as long as no spaces were added inside the quotes.
Why does my TXT record show a quote in the middle?
Because the value is longer than 255 bytes and is stored as two or more strings. That is normal.
Do I need to split the value myself in Cloudflare or cPanel?
Usually not. Both store long values as several strings. Use the quoted form when you edit zone files by hand or when a panel rejects the long value.
Why are bytes counted, not characters?
DNS limits are in bytes. Plain ASCII uses one byte per character, but accented and other non-ASCII characters use two or more.