0

我正在尝试使用 java 映射 EDIFACT 文件。

我使用的数据经过编码,看起来像这样:UNBIATB11AMS135682300687X

我期待这种格式:UNH+1+SBRRES:09:3:1A'

谁能帮我解决这个问题?

提前致谢。

4

1 回答 1

2

您的文本似乎包含0x1D0x1F0x1C字符。

如果你0x1D+0x1F和替换:,你会得到:0x1C'

UNB+IATB:1+1A+MS+13568:230+0687+++X'

您可能不应该替换,而只是使用那些不可显示的字符进行解析,但如果您需要可显示的,您可以这样做:

s = s.replace('\u001D', '+').replace('\u001F', ':').replace('\u001C', '\'');

或者用数据中没有的任何字符替换。这可能是他们使用那些不可显示字符的原因,因为它们保证不会出现在文本数据中。请记住,计算机并不关心角色是否可显示,只有人类才关心。

于 2018-01-10T10:26:09.840 回答