Reasons == Intro After a long time, I finally figure out why the fontconfig conf changes solved the problem, thanks for the help of tagoh. == fontconfig Before the changes, the fontconfig returns the following for monospace font of zh-cn lang. [epico@localhost pango]$ fc-match --sort monospace:lang=zh-cn|head -n 5 wqy-zenhei.ttc: "WenQuanYi Zen Hei Sharp" "Regular" DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book" DejaVuSansMono-Bold.ttf: "DejaVu Sans Mono" "Bold" n022003l.pfb: "Nimbus Mono L" "Regular" VL-Gothic-Regular.ttf: "VL Gothic" "regular" After the changes, the fontconfig returns the following for monospace font of zh-cn lang. [epico@localhost pango]$ fc-match --sort monospace:lang=zh-cn|head -n 5 DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book" DejaVuSansMono-Bold.ttf: "DejaVu Sans Mono" "Bold" wqy-zenhei.ttc: "WenQuanYi Zen Hei Sharp" "Regular" n022003l.pfb: "Nimbus Mono L" "Regular" VL-Gothic-Regular.ttf: "VL Gothic" "regular" == pango For the example(pango test.txt), the third line has been correctly marked as zh-cn lang. When use the first fontconfig conf, pango load the wqy-zenhei font, and find that all glyphs are contained in the font, use the wqy-zenhei font directly. When use the second fontconfig conf, pango load the DejaVuSans font, and find "*" is in the font, then use the DejaVuSans font for "*". When pango encounters the Chinese glyph, it can't find the glyph in the DejaVuSans font, as pango has fallback font mechanisms, it try to use the second font, then the third font, and find the Chinese glyph is in the wqy-zenhei font, then it uses the wqy-zenhei font for Chinese glyphs. Refer URL: https://bugzilla.redhat.com/show_bug.cgi?id=485566