我刚刚开始了解 Dicom 标准。我正在尝试编写一个小程序,它将读取dicom
文件并将信息转储到文本文件中。我有一个包含中文患者姓名的数据集。如何读取和存储这些名称?
目前,我正在读取文件中的名称Char*
,dicom
将其转换char*
为wchar*
使用中文代码页“950”并写入文本文件。我没有看到汉字,而是在我的文本文件中看到*
?
和。%
我错过了什么?
我在 Windows 上使用 C++ 工作。
我刚刚开始了解 Dicom 标准。我正在尝试编写一个小程序,它将读取dicom
文件并将信息转储到文本文件中。我有一个包含中文患者姓名的数据集。如何读取和存储这些名称?
目前,我正在读取文件中的名称Char*
,dicom
将其转换char*
为wchar*
使用中文代码页“950”并写入文本文件。我没有看到汉字,而是在我的文本文件中看到*
?
和。%
我错过了什么?
我在 Windows 上使用 C++ 工作。
手头可能有多个问题。
首先,你知道中文名字的字符编码,比如Big5还是GB*?见http://en.wikipedia.org/wiki/Chinese_character_encoding
其次,你知道你的输出文本文件的编码吗?如果是ascii,那么您可能永远无法查看汉字。在这种情况下,我建议将其更改为 unicode(即 UTF-8)。
然后,当您读取中文名称时,将原始字节转换并写出结果。例如,如果 DICOM 将其存储在 Big5 中,并且您的文本文件是 UTF-8,则您将需要一个 Big5->UTF-8 转换器。
如果文本文件包含 UTF-16,您是否包含了 BOM?