很抱歉我不擅长DICOM。我试图用fo-dicom用中文单词写入DICOM标签(0008,0080)。但是发现Tag值只显示结果文件中的混乱代码。请帮忙查看。
C#代码如下:
var file = DicomFile.Open(@"C:\Users\Administrator\Desktop\20D08F04");
//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
的值是中文。并且可以正确查看。感谢。
答案 0 :(得分:2)
.NET fo-dicom 中的默认编码是US-ASCII。如果在之后设置特定字符集 ,则打开DICOM文件,解析在打开操作中完成后无效。 特定字符集仅在已在DICOM文件中设置时才适用。
您可以做的是设置"后备编码"如果在DicomFile.Open
的参数列表中未在DICOM文件中指定特定字符集,则使用。
试试这个例子:
var file = DicomFile.Open(fileName, DicomEncoding.GetEncoding("GB18030"));
正如@johnelemans在评论中指出的那样,还要验证你的观众是否能够显示中文字符集。