目录
问题背景
常见字符集和编码
DICOM标准中的字符集支持
解决方案
示例代码
处理不同字符集的示例
关键点
注意事项
结论
在解析DICOM文件时,如果字符集处理不当,可能会出现中文乱码的问题。本文将介绍如何正确处理DICOM文件中的字符集,以避免乱码问题。DICOM文件中使用的字符集标识由Specific Character Set
(Tag 0008, 0005)决定。
问题背景
1、DICOM文件默认使用的字符集是 ISO_IR 100
,当DICOM文件不指定字符集时,不同的DICOM库可能会使用不同的编码进行解码,这就可能导致乱码问题。如在未指定字符集的情况下,会使用默认的 ISO_IR 100
进行解码,但如果实际内容是中文,这会导致显示乱码。
2、使用Encoding.GetEncoding("GB2312")
来解析ISO_IR 192
指定的tag,可能会出现乱码,因为ISO_IR 192
对应的是UTF-8编码,而不是GB2312。
常见字符集和编码
在DICOM文件中,常见的字符集有:
- ISO_IR 192:对应UTF-8。
- GB18030:中国国家标准GB18030编码。
- GB2312 / GBK:常见的中文字符集。
DICOM标准中的字符集支持
DICOM标准中支持的字符集包括但不限于:
- ISO_IR 6
- ISO_IR 100
- ISO_IR 101
- ISO_IR 109
- ISO_IR 110
- ISO_IR 144
- ISO_IR 127
- ISO_IR 126
- ISO_IR 138
- ISO_IR 148
- ISO_IR 13
- ISO_IR 166
- ISO_IR 192
- GB18030
- GBK
从 dicom官方网站:dicom.nema.org - /medical/dicom/2016d/output/docx/ 2016年最新DICOM标准文档中说明如下:
In addition to the default character repertoire, the Defined Terms for Specific Character Set in Table D.6.2-1 are supported:
Table D.6.2-1. Supported Specific Character Set Defined Terms
Character Set Description |
|
Latin alphabet No. 1 |
|