Index: pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java
===================================================================
--- pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java	(revision 1642102)
+++ pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java	(working copy)
@@ -163,6 +163,10 @@
         substitutes.put("$Adobe-Korea1", Arrays.asList("AdobeGothicStd-Bold"));
         substitutes.put("$Adobe-GB1", Arrays.asList("AdobeHeitiStd-Regular"));
 
+        substitutes.put("MS-Gothic", Arrays.asList("TakaoPGothic"));
+        substitutes.put("MS-PGothic", Arrays.asList("TakaoPGothic"));
+        substitutes.put("MS-Mincho", Arrays.asList("TakaoPGothic"));
+
         // Acrobat also uses alternative names for Standard 14 fonts, which we map to those above
         // these include names such as "Arial" and "TimesNewRoman"
         for (String baseName : Standard14Fonts.getNames())
Index: pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
===================================================================
--- pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java	(revision 1642102)
+++ pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java	(working copy)
@@ -27,6 +27,7 @@
 import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.cos.COSString;
 import org.apache.pdfbox.pdmodel.font.encoding.GlyphList;
 import org.apache.pdfbox.pdmodel.font.encoding.StandardEncoding;
 import org.apache.pdfbox.util.Matrix;
@@ -274,8 +275,15 @@
         }
         else
         {
-            // if no value has been produced, there is no way to obtain Unicode for the character.
-            return null;
+            int cid = codeToCID(code);
+            COSDictionary s = (COSDictionary) descendantFont.dict.getDictionaryObject(COSName.CIDSYSTEMINFO);
+            COSString registry = (COSString) s.getItem(COSName.REGISTRY);
+            COSString ordering = (COSString) s.getItem(COSName.ORDERING);
+            if (ordering.getString().equals("Identity")) {
+                return null;
+            }
+            CMap ucs2CMap = CMapManager.getPredefinedCMap(registry.getString() + "-" + ordering.getString() + "-UCS2");
+            return ucs2CMap.toUnicode(cid);
         }
     }
 
