Запишите китайское значение в название учреждения с помощью fo-dicom
Извините за то, что я не хорош в DICOM. Я пытался записать в тег DICOM (0008,0080) китайские слова от fo-dicom. Но найденное значение 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
Ценность китайская. И можно посмотреть правильно. Благодарю.
1 ответ
Кодировка по умолчанию в.NET fo-dicom - US-ASCII. Если после установки файла DICOM вы задали конкретный набор символов, это не поможет, в операции открытия выполняется синтаксический анализ. Конкретный набор символов применяется только в том случае, если он уже установлен в файле DICOM.
Что вы можете сделать, это установить "резервную кодировку", которая будет использоваться, если в файле DICOM не указан конкретный набор символов, в списке аргументов DicomFile.Open
,
Попробуйте это например:
var file = DicomFile.Open(fileName, DicomEncoding.GetEncoding("GB18030"));
И, как указал @johnelemans в комментариях, также убедитесь, что ваш зритель способен отображать набор китайских символов.