用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 在评论中指出的那样,还要验证您的查看器是否能够显示中文字符集。
对不起,我不擅长 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 在评论中指出的那样,还要验证您的查看器是否能够显示中文字符集。