aboutsummaryrefslogtreecommitdiff
path: root/Lib/fontTools/misc/encodingTools.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/fontTools/misc/encodingTools.py')
-rw-r--r--Lib/fontTools/misc/encodingTools.py123
1 files changed, 62 insertions, 61 deletions
diff --git a/Lib/fontTools/misc/encodingTools.py b/Lib/fontTools/misc/encodingTools.py
index eccf951d..3b2651d3 100644
--- a/Lib/fontTools/misc/encodingTools.py
+++ b/Lib/fontTools/misc/encodingTools.py
@@ -5,67 +5,68 @@ import fontTools.encodings.codecs
# Map keyed by platformID, then platEncID, then possibly langID
_encodingMap = {
- 0: { # Unicode
- 0: 'utf_16_be',
- 1: 'utf_16_be',
- 2: 'utf_16_be',
- 3: 'utf_16_be',
- 4: 'utf_16_be',
- 5: 'utf_16_be',
- 6: 'utf_16_be',
- },
- 1: { # Macintosh
- # See
- # https://github.com/fonttools/fonttools/issues/236
- 0: { # Macintosh, platEncID==0, keyed by langID
- 15: "mac_iceland",
- 17: "mac_turkish",
- 18: "mac_croatian",
- 24: "mac_latin2",
- 25: "mac_latin2",
- 26: "mac_latin2",
- 27: "mac_latin2",
- 28: "mac_latin2",
- 36: "mac_latin2",
- 37: "mac_romanian",
- 38: "mac_latin2",
- 39: "mac_latin2",
- 40: "mac_latin2",
- Ellipsis: 'mac_roman', # Other
- },
- 1: 'x_mac_japanese_ttx',
- 2: 'x_mac_trad_chinese_ttx',
- 3: 'x_mac_korean_ttx',
- 6: 'mac_greek',
- 7: 'mac_cyrillic',
- 25: 'x_mac_simp_chinese_ttx',
- 29: 'mac_latin2',
- 35: 'mac_turkish',
- 37: 'mac_iceland',
- },
- 2: { # ISO
- 0: 'ascii',
- 1: 'utf_16_be',
- 2: 'latin1',
- },
- 3: { # Microsoft
- 0: 'utf_16_be',
- 1: 'utf_16_be',
- 2: 'shift_jis',
- 3: 'gb2312',
- 4: 'big5',
- 5: 'euc_kr',
- 6: 'johab',
- 10: 'utf_16_be',
- },
+ 0: { # Unicode
+ 0: "utf_16_be",
+ 1: "utf_16_be",
+ 2: "utf_16_be",
+ 3: "utf_16_be",
+ 4: "utf_16_be",
+ 5: "utf_16_be",
+ 6: "utf_16_be",
+ },
+ 1: { # Macintosh
+ # See
+ # https://github.com/fonttools/fonttools/issues/236
+ 0: { # Macintosh, platEncID==0, keyed by langID
+ 15: "mac_iceland",
+ 17: "mac_turkish",
+ 18: "mac_croatian",
+ 24: "mac_latin2",
+ 25: "mac_latin2",
+ 26: "mac_latin2",
+ 27: "mac_latin2",
+ 28: "mac_latin2",
+ 36: "mac_latin2",
+ 37: "mac_romanian",
+ 38: "mac_latin2",
+ 39: "mac_latin2",
+ 40: "mac_latin2",
+ Ellipsis: "mac_roman", # Other
+ },
+ 1: "x_mac_japanese_ttx",
+ 2: "x_mac_trad_chinese_ttx",
+ 3: "x_mac_korean_ttx",
+ 6: "mac_greek",
+ 7: "mac_cyrillic",
+ 25: "x_mac_simp_chinese_ttx",
+ 29: "mac_latin2",
+ 35: "mac_turkish",
+ 37: "mac_iceland",
+ },
+ 2: { # ISO
+ 0: "ascii",
+ 1: "utf_16_be",
+ 2: "latin1",
+ },
+ 3: { # Microsoft
+ 0: "utf_16_be",
+ 1: "utf_16_be",
+ 2: "shift_jis",
+ 3: "gb2312",
+ 4: "big5",
+ 5: "euc_kr",
+ 6: "johab",
+ 10: "utf_16_be",
+ },
}
+
def getEncoding(platformID, platEncID, langID, default=None):
- """Returns the Python encoding name for OpenType platformID/encodingID/langID
- triplet. If encoding for these values is not known, by default None is
- returned. That can be overriden by passing a value to the default argument.
- """
- encoding = _encodingMap.get(platformID, {}).get(platEncID, default)
- if isinstance(encoding, dict):
- encoding = encoding.get(langID, encoding[Ellipsis])
- return encoding
+ """Returns the Python encoding name for OpenType platformID/encodingID/langID
+ triplet. If encoding for these values is not known, by default None is
+ returned. That can be overriden by passing a value to the default argument.
+ """
+ encoding = _encodingMap.get(platformID, {}).get(platEncID, default)
+ if isinstance(encoding, dict):
+ encoding = encoding.get(langID, encoding[Ellipsis])
+ return encoding