Read Chinese Characters in Dicom Files
I have just started to get a feel of Dicom standard. I am trying to write a small program, that would read a dicom
file and dump the information to a text file. I have a dataset that has the patient names in Chinese. How can I read and store these names?
Currently, I am reading the names as Char*
from the dicom
file, converting this char*
to wchar*
using code page "950" for Chinese and writing to a text file. Instead of seeing Chinese characters I see *
?
and %
in my text file. What am I missing?
I am working in C++ on Win开发者_StackOverflow中文版dows.
If the text file contains UTF-16, have you included a BOM?
There may be multiple issues at hand.
First, do you know the character encoding of the Chinese name, e.g. Big5 or GB*? See http://en.wikipedia.org/wiki/Chinese_character_encoding
Second, do you know the encoding of your output text file? If it is ascii, then you probably won't ever be able to view the Chinese characters. In which case, I would suggest changing it to unicode (i.e. UTF-8).
Then, when you read the Chinese name, convert the raw bytes and write out the result. For example, if the DICOM stores it in Big5, and your text file is UTF-8, you will need a Big5->UTF-8 converter.
精彩评论