EDI Fundamentals

EDI Delimiters Explained

Every EDI parser's first job is figuring out which characters separate one piece of data from the next — before it can read a single meaningful field. Get the delimiters wrong and every value after that point comes out garbled or merged together. This guide explains exactly what each delimiter type does and precisely where to find it in both major standards.

Why EDI Uses Delimiters At All

EDI files don't use fixed-width columns or line breaks between fields the way a typical printed report might. Instead, they pack an entire document into a compact character stream and rely on special reserved characters to mark boundaries. This makes files smaller and faster to generate and parse programmatically, at the cost of being unreadable to a human without knowing which characters are doing the separating.

The Three Delimiter Types

Crucially, none of these characters are fixed by the standard itself — they're chosen by whoever generated the specific file and then explicitly declared at the very start of the interchange, precisely so any compliant parser can read them regardless of which characters were chosen.

Finding Delimiters in an X12 File (the ISA Segment)

Every X12 interchange opens with a 106-character fixed-position ISA segment. The delimiters aren't spelled out as labeled values — they're revealed by their position:

ISA*00*          *00*          *ZZ*SENDERID       *ZZ*RECEIVERID     *230101*1253*^*00501*000000905*0*T*:~

Because the ISA segment is fixed-width by specification (each field pads to an exact length), a parser can find these positions reliably without first knowing the element separator — a neat bootstrapping trick that lets the very first segment declare the rules used by every segment after it.

Finding Delimiters in an EDIFACT File (the UNA Segment)

EDIFACT is more explicit: an optional six-character UNA segment, if present, spells the delimiters out directly, one character per position, in a fixed order:

UNA:+.? '
  1. : — component data element separator
  2. + — data element separator
  3. . — decimal notation character
  4. ? — release (escape) character
  5. (reserved, always a space)
  6. ' — segment terminator

If the UNA segment is missing entirely, EDIFACT defines documented defaults that a parser should fall back to: : for components, + for elements, ' for segment termination — so a well-built parser should check for UNA first and only apply defaults when it's genuinely absent.

The Release / Escape Character Gotcha

What happens if a genuine data value needs to contain a character that's also being used as a delimiter — for example, a company name with a literal plus sign, in a file whose element separator is +? Both standards handle this with an escape mechanism: the character immediately preceding the delimiter-like character signals "treat the next character as literal data, not a delimiter." A naive parser that doesn't check for the escape character will incorrectly split a field in the wrong place. This is one of the more common causes of subtly corrupted parsing output, and one of the reasons hand-written regex-based EDI parsing is risky compared to dedicated parsing logic.

You Don't Have to Do This by Hand

The free converter on this site reads the ISA or UNA/UNB segment automatically, extracts every delimiter correctly (including handling escape characters), and applies them across the entire file before labeling any segment. You never need to manually count character positions. See it in action on the X12 EDI Viewer or EDIFACT Viewer, or read X12 vs EDIFACT for the full standards comparison.

Try It Yourself

Drop any EDI file into the free converter and its delimiters are detected and applied automatically, with every segment labeled and exportable to CSV, Excel, or JSON.

Open the Free EDI Converter

Frequently Asked Questions

Are EDI delimiters always the same characters?

No — the standard doesn't mandate specific characters, only that they be declared at the start of the file (ISA for X12, UNA for EDIFACT) so any compliant parser can read them regardless of which characters were chosen.

What happens if the delimiters are misread?

Every field after the error will be split incorrectly, producing garbled or merged values — this is one of the most common causes of bad EDI parsing output.

What if an EDIFACT file has no UNA segment?

A parser should fall back to the documented EDIFACT default delimiters — colon for components, plus for elements, and apostrophe for segment termination.

Do I need to identify delimiters manually before using this converter?

No — the converter detects and applies the correct delimiters automatically for both X12 and EDIFACT files.