In the following way, an UCS2 character can be displayed correctly. But when it comes surrogate pair, nothing displayed. I know that two QChar inside a QString will be used for a surrogate pair. The question is how to let the system know it's a surrogate pair not two QChars and display it correctly?

Code:
uint a = 0x20000 //surrogate pair character 
QString str;
str.append(a);
painter.Drawtext(str);