Запишите китайское значение в название учреждения с помощью 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 в комментариях, также убедитесь, что ваш зритель способен отображать набор китайских символов.

Другие вопросы по тегам