diff --git a/src/ports/skia_ohos/SkFontMgr_ohos.cpp b/src/ports/skia_ohos/SkFontMgr_ohos.cpp index 2b790edab220916c84729dd79cc23523ab14920e..ca5114b0be1e4b2932a3fba943db6134bb52b477 100644 --- a/src/ports/skia_ohos/SkFontMgr_ohos.cpp +++ b/src/ports/skia_ohos/SkFontMgr_ohos.cpp @@ -204,6 +204,18 @@ SkTypeface* SkFontMgr_OHOS::findTypeface(const FallbackSetPos& fallbackItem, con } tps[ret] = i; } + if (character >= 0x2018 && character <= 0x201D) { + for (int i = 0; i <= bcp47Count - 1; i++) { + if (tps[i] == -1) { + continue; + } + const TypefaceSet& tpSet = *(fallbackSet[tps[i]]->typefaceSet.get()); + if (tpSet.size() > 0 && tpSet[0]->unicharToGlyph(character) != 0) { + sk_sp typeface = FontConfig_OHOS::matchFontStyle(tpSet, style); + return SkSafeRef(typeface.get()); + } + } + } // match typeface in families for (int i = bcp47Count - 1; i >= 0; i--) { if (tps[i] == -1) {