FO-DICOM开发C-StoreSCP报错'GB18030' is not a supported encoding name


前些日子接了一个DICOM Store 服务对接pacs相关的私活,在调试fo-dicom库测试对接设备时日志出现了如题报错 'fo-dicom开发C-StoreSCP报错'GB18030' is not a supported encoding name', 大概意思就是GB18030这个不是受支持的编码字符集 fo-dicom开发C-StoreSCP报错'GB18030' is not a supported encoding name

然而在相同的环境下,使用.Net Framework版本的fo-dicom库并没有出现类似的问题,这让我意识到这可能是由于.net 6环境下的某些设置或配置导致的。通过百度一乐一堆有用没用的资料找到了原因,原来是默认情况下.net 6的fo-dicom库并未包含对GB18030编码字符集的支持。

最终在GitHub上找到了相关的讨论和解决方案。根据这些信息,发现.net 6的版本需要手动去注册GB18030编码支持字符集。在.net 6中,可以通过添加特定的NuGet包来添加对GB18030的支持。

解决办法

.net 6默认未引用System.Text.Encoding.CodPages,添加引用后需要注册一下即可:注册代码如下:

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);