HL7 编码非 ASCII 字符串中的字符

问题描述 投票:0回答:1

我有一个问题,如何处理使用非标准(非 7 位 ASCII)字符集时出现的 HL7v2 编码字符。例如,这是 HL7v2 消息的一部分:

MSH|^~\&|appl|fac|||20240314081500||ORM^O01|10089|P|2.3||||||ISO IR87
PID|||Japan_Test_1||Yamada^Tarou~<esc>$B;3ED<esc>(B^<esc>$BB@O:<esc>(B~<esc>$B$d$^$@<esc>(B^<esc>$B$?$m$&<esc>(B|...

其中“”表示存在字节 0x1B(ESC 字符)。该消息使用“ISO IR87”字符集(JIS X 0208-1990)。患者姓名第二次重复中的姓氏包含平假名字母“ま”(ma) 的 JISX0208 编码,即字节 0x24 0x5E,恰好对应于 ASCII 字符 $ 和 ^。

问题是,既然这里出现了字节0x5E,那么HL7标准是否要求我对其进行转义呢?即我必须在这里使用“\S\”吗?一方面,有人可能会认为 0x5E(^ 的 ASCII 编码)出现了,因此需要转义。另一方面,插入符号(^)没有出现,0x5E只是字符“ま”(ma)的编码的一部分。

换句话说,我需要先解决HL7转义,还是需要先处理字符编码?我尝试搜索 HL7 标准,但没有找到明确的答案。

character-encoding cjk hl7 hl7-v2
1个回答
0
投票

规范对此保持沉默,因为我们并没有真正意识到这是一个问题。 HL7 消息是字符的序列,而不是字节,并且在解决字符转义之前先解决编码问题

话虽如此......会有一些解析器不理解 JISX0208 编码并陷入困境,因为他们将 if 视为未转义的分隔符,因此您必须检查每个交易方。

© www.soinside.com 2019 - 2024. All rights reserved.