使用fo dicom将中文值写入机构名称
对不起,我不擅长DICOM。我试着用fo DICOM的中文单词写进DICOM标签(00080080)。但是找到的标记值只是在结果文件中显示混乱的代码。请帮忙复习一下 C#代码如下:使用fo dicom将中文值写入机构名称,dicom,fo-dicom,Dicom,Fo Dicom,对不起,我不擅长DICOM。我试着用fo DICOM的中文单词写进DICOM标签(00080080)。但是找到的标记值只是在结果文件中显示混乱的代码。请帮忙复习一下 C#代码如下: var file = DicomFile.Open(@"C:\Users\Administrator\Desktop\20D08F04"); //file.Dataset.Add(DicomTag.SpecificCharacterSet, "GB18030"); //file.Dataset.Add(Dicom
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文件编辑器支持中文字符集。
因为还有另一个属性患者姓名
,其值为中文。并且可以正确地查看。谢谢
在.NET fo dicom中,默认编码为US-ASCII。如果在打开DICOM文件后设置特定字符集,则没有帮助,解析是在打开操作中完成的。特定字符集仅在DICOM文件中已设置时适用 如果DICOM文件中未指定特定的字符集,您可以在
DicomFile.Open的参数列表中设置要使用的“回退编码”
请尝试以下示例:
var file = DicomFile.Open(fileName, DicomEncoding.GetEncoding("GB18030"));
正如@johnelemans在评论中指出的,还要验证您的查看器是否能够显示中文字符集。查看器是否支持该字符集?这并不意味着如果查看器工具无法显示名称,则名称设置不正确。用你自己的代码阅读它,看看它是否正确返回。您可能还需要设置特定的字符集(00080005)标记。@Johneleman请查看我的更新。谢谢。嗨,安德斯·古斯塔夫森,它坏了。但你的回答激励了我。我试图添加具有指定编码的标记。代码如下所示:DicomItem di=new-DicomShortText(DicomTag.InstitutionName,DicomEncoding.GetEncoding(“GB18030”),”磊一二"); file.Dataset.Add(di);
谢谢。是否使用指定的编码打开并不重要。