diff --git a/core/fpdfapi/font/cpdf_font.cpp b/core/fpdfapi/font/cpdf_font.cpp
index bd60942..a3be363 100644
--- a/core/fpdfapi/font/cpdf_font.cpp
+++ b/core/fpdfapi/font/cpdf_font.cpp
@@ -434,17 +434,16 @@
   bool charmap_unicode_found = false;
   bool charmap_mssymbol_found = false;
   for (size_t i = 0; i < face->GetCharMapCount(); i++) {
-    const int platform_id = face->GetCharMapPlatformIdByIndex(i);
-    const int encoding_id = face->GetCharMapEncodingIdByIndex(i);
-    const fxge::FontEncoding encoding = face->GetCharMapEncodingByIndex(i);
-    if (platform_id == 3 && encoding_id == 1) {
+    const CFX_Face::CharMapId charmap_id = face->GetCharMapIdByIndex(i);
+    if (charmap_id == CFX_Face::kWindowsUnicodeCmapId) {
       face->SetCharMapByIndex(i);
       return true;
     }
-    if (platform_id == 3 && encoding_id == 0) {
+    if (charmap_id == CFX_Face::kWindowsSymbolCmapId) {
       charmap_mssymbol_found = true;
       continue;
     }
+    const fxge::FontEncoding encoding = face->GetCharMapEncodingByIndex(i);
     if (!charmap_unicode_found && encoding == fxge::FontEncoding::kUnicode) {
       charmap_unicode_found = true;
       charmap_unicode_index = i;
diff --git a/core/fxge/cfx_face.cpp b/core/fxge/cfx_face.cpp
index 0c6e068..9cc6f49 100644
--- a/core/fxge/cfx_face.cpp
+++ b/core/fxge/cfx_face.cpp
@@ -748,6 +748,11 @@
   return ToFontEncoding(GetRec()->charmap->encoding);
 }
 
+CFX_Face::CharMapId CFX_Face::GetCharMapIdByIndex(size_t index) const {
+  return {.platform_id = GetCharMapPlatformIdByIndex(index),
+          .encoding_id = GetCharMapEncodingIdByIndex(index)};
+}
+
 int CFX_Face::GetCharMapPlatformIdByIndex(size_t index) const {
   CHECK_LT(index, GetCharMapCount());
   // SAFETY: required from library as enforced by check above.
diff --git a/core/fxge/cfx_face.h b/core/fxge/cfx_face.h
index d11adb9..d135a86 100644
--- a/core/fxge/cfx_face.h
+++ b/core/fxge/cfx_face.h
@@ -38,6 +38,19 @@
     uint32_t glyph_index;
   };
 
+  // Note that this corresponds to the cmap header in fonts, and not the cmap
+  // data in PDFs.
+  struct CharMapId {
+    bool operator==(const CharMapId&) const = default;
+
+    int platform_id;
+    int encoding_id;
+  };
+
+  // Aliases for some commonly used cmaps.
+  static constexpr CharMapId kWindowsSymbolCmapId{3, 0};
+  static constexpr CharMapId kWindowsUnicodeCmapId{3, 1};
+
   static RetainPtr<CFX_Face> New(FT_Library library,
                                  RetainPtr<Retainable> pDesc,
                                  pdfium::span<const FT_Byte> data,
@@ -106,6 +119,7 @@
 
   CharMap GetCurrentCharMap() const;
   std::optional<fxge::FontEncoding> GetCurrentCharMapEncoding() const;
+  CharMapId GetCharMapIdByIndex(size_t index) const;
   int GetCharMapPlatformIdByIndex(size_t index) const;
   int GetCharMapEncodingIdByIndex(size_t index) const;
   fxge::FontEncoding GetCharMapEncodingByIndex(size_t index) const;
