用fo-dicom将中文值写入机构名称

Write Chinese value into Institution Name with fo-dicom

对不起,我不擅长 DICOM。我试图用 fo-dicom 的中文单词写入 DICOM 标签 (0008,0080)。但是发现Tag值只是显示结果文件中的乱码。请帮忙审核一下。

C#代码如下:

var file = DicomFile.Open(@"C:\Users\Administrator\DesktopD08F04"); 

//file.Dataset.Add(DicomTag.SpecificCharacterSet, "GB18030");
//file.Dataset.Add(DicomTag.SpecificCharacterSet, "ISO_IR 192");
//I already tried to specified the 0008,0005 with GBK and Utf-8. but it doesn't work. 
file.Dataset.Add(DicomTag.InstitutionName, "测试");

file.Save(@"C:\Users\Administrator\Desktop\test123.dcm");

生成的文件在 DCMTK 编辑器中看起来像炸毁了。

你们中的任何人都可以帮助我吗?

提前致谢

已更新

我确定DVTK Dicom 文件编辑器支持中文字符集。 因为还有一个属性Patient's Name的值为中文。并且可以正常查看。谢谢。

.NET fo-dicom 中的默认编码是 US-ASCII。如果您设置特定字符集打开DICOM文件后,它没有帮助,解析是在打开操作中完成的。 特定字符集 仅当它已在 DICOM 文件中设置时才适用。

如果DICOM文件中没有指定特定字符集,你可以设置"fallback encoding",在[=的参数列表中11=].

例如试试这个:

var file = DicomFile.Open(fileName, DicomEncoding.GetEncoding("GB18030"));

正如@johnelemans 在评论中指出的那样,还要验证您的查看器是否能够显示中文字符集。