在Dicom文件中读取中文字符

时间:2011-07-22 19:42:01

标签: c++ visual-studio-2008 dicom

我刚刚开始感受到Dicom的标准。我正在尝试编写一个小程序,它将读取dicom文件并将信息转储到文本文件中。我有一个中文患者姓名的数据集。如何阅读和存储这些名称?

目前,我正在从Char*文件中读取dicom的名称,使用代码页“950”将此char*转换为wchar*并将其写入文本文件。我没有看到中文字符,而是在文本文件中看到* ?%。我错过了什么?

我在Windows上使用C ++。

2 个答案:

答案 0 :(得分:0)

如果文本文件包含UTF-16,您是否包含了BOM?

答案 1 :(得分:0)

手头可能存在多个问题。

首先,您是否知道中文名称的字符编码,例如: Big5或GB *?见http://en.wikipedia.org/wiki/Chinese_character_encoding

其次,您知道输出文本文件的编码吗?如果它是ascii,那么你可能永远无法查看汉字。在这种情况下,我建议将其更改为unicode(即UTF-8)。

然后,当您读取中文名称时,转换原始字节并写出结果。例如,如果DICOM将其存储在Big5中,并且您的文本文件为UTF-8,则需要Big5-> UTF-8转换器。