Как узнать, какой набор символов используется в документе x12?

Я реализую анализатор заголовков EDI-x12 (только для анализа сегмента «ISA»). Я заметил, что можно использовать несколько наборов символов.

Мой вопрос заключается в том, как узнать, какой из них используется для входящего сообщения edi-x12, чтобы я знал, как интерпретировать сообщение?


person kai    schedule 21.11.2011    source источник


Ответы (2)


на самом деле в x12 нет такой вещи, как набор символов. это зависит от соглашения о партнерах/обмене. но поскольку X12 в основном используется в США, это us-ascii (почти всегда). (но ..... некоторые компании отправляют x12 как EBCEDIC ;-)))

person eppye    schedule 21.11.2011
comment
если документ закодирован в EBCDIC, разрешен ли весь документ в кодировке EBCDIC или часть из них в ASCII, а часть в EBCDIC, поскольку я видел, что какой-то документ в основном закодирован в ASCII, хотя он также включает непечатаемые символы... - person kai; 22.11.2011
comment
если EBCDIC, все EBCDIC. Я не поверил этому, но я действительно видел это. «Стандарт» действительно расплывчат по этому поводу. - person eppye; 22.11.2011
comment
Стандарт дает список символов, которые должны поддерживаться. Кодировку можно настроить между партнерами. Кодировка != кодировка. Если вы придерживаетесь набора символов, указанного в ANSI X12, то преобразование между EBCDIC/ASCII будет простым преобразованием. - person Stuart Gathman; 16.10.2018
comment
так, вы перефразируете вопрос: откуда вы знаете кодировку? чем ответить на этот вопрос... - person eppye; 17.10.2018

Если вы работаете только с ANSI X12, вам будет легко разобрать сегмент ISA, так как он имеет фиксированную длину.

Позиция 4 даст вам разделитель элементов (разделитель полей).
Позиция 106 даст вам признак конца записи.
Позиция 105 даст вам разделитель подэлементов.

Вы, вероятно, не будете использовать разделитель подэлементов, в зависимости от типа документа. Как только вы выясните, каковы ваши разделители полей, а затем разделитель записи, это должно быть несложно.

(Стандартный отказ от ответственности: существует множество отличных инструментов в виде трансляторов данных, которые делают эту работу намного проще, чем программисту заново изобретать велосипед. Некоторые из этих инструментов даже с открытым исходным кодом и бесплатны. Просто скажу...)

Надеюсь это поможет.

person Andrew    schedule 21.11.2011