Encoding 没有特定字符集的默认DICOM编码

Encoding 没有特定字符集的默认DICOM编码,encoding,character-encoding,dicom,Encoding,Character Encoding,Dicom,如果DICOM文件未定义特定字符集(00080005),则默认使用哪个字符集?ASCII是DICOM文件的默认编码吗 TL;DR DICOM文件在其中一个标记中包含德语字母,但该文件未指定任何字符集。我假设在这种情况下,文件只允许包含ASCII符号(默认字符集),并将此文件报告为无效。在提交更改之前,我希望确保正确理解DICOM。如DICOM数据结构和编码中所述 6.1.2.5.4实施水平和初始指定 a) 属性特定字符集(00080005)不存在: 7位代码 实施级别:ISO 2022第1级-基

如果DICOM文件未定义
特定字符集(00080005)
,则默认使用哪个字符集?ASCII是DICOM文件的默认编码吗

TL;DR


DICOM文件在其中一个标记中包含德语字母,但该文件未指定任何字符集。我假设在这种情况下,文件只允许包含ASCII符号(默认字符集),并将此文件报告为无效。在提交更改之前,我希望确保正确理解DICOM。

如DICOM数据结构和编码中所述

6.1.2.5.4实施水平和初始指定

a) 属性特定字符集(00080005)不存在:

7位代码 实施级别:ISO 2022第1级-基本7位代码(代码级别标识符1)

初始名称:ISO-IR 6(ASCII)为G0。 不得使用代码扩展

参考:


为了补充JonnyQ的答案,DICOM标准还定义了遇到实现未知或不受支持的字符集时的机制(参见PS 3.5第6.1.2.3节)。实现可以通过将所有未知字符替换为四个字符“\nnn”来打印或显示这些字符,其中“nnn”是每个字节的三位八进制表示形式

标准中给出的基于ASCII的机器示例如下:

字符串:Günther

编码表示:04/07 15/12 06/14 07/04 06/08 06/05 07/02

基于ASCII的计算机:G\374n或

实现还可能遇到无法打印或显示的控制字符。 应用程序可以通过将控制字符替换为
四个字符“\nnn”,其中“nnn”是每个字节的三位八进制表示。

我读了这部分。指定和代码扩展是什么意思?在我的理解中,“初始指定”意味着“默认使用”。为了更好地理解代码扩展名,您可以阅读Yes,ascii是默认值。在不知道字符编码是什么的情况下,您如何(肯定地)知道它是aä?在/most/单字节字符编码中,ä用相同的字节值表示。但是,这并不能保证。如果字符集未知,那么尝试将任何二进制值解释为字符是没有意义的。仅仅因为一些代码点存在于ascii或iso-8859变体中,这是毫无意义的。类似地,如果遇到对(假定)正在使用的字符集/编码无效的代码点,这似乎表明实际使用的字符编码是未知的,因此不可能确定地声明任何代码点都可以准确解释。实际上,这些准则仅对无法显示的有效代码点有用。