1# Purpose: codepage handling
2# Created: 21.07.2012, taken from my ezdxf project
3# Copyright (C) 2012, Manfred Moitzi
4# License: MIT License
5from __future__ import unicode_literals
6__author__ = "mozman <mozman@gmx.at>"
7
8codepages = {
9    '874': 'cp874', # Thai,
10    '932': 'cp932', # Japanese
11    '936': 'gbk', # UnifiedChinese
12    '949': 'cp949', # Korean
13    '950': 'cp950', # TradChinese
14    '1250': 'cp1250', # CentralEurope
15    '1251': 'cp1251', # Cyrillic
16    '1252': 'cp1252', # WesternEurope
17    '1253': 'cp1253', # Greek
18    '1254': 'cp1254', # Turkish
19    '1255': 'cp1255', # Hebrew
20    '1256': 'cp1256', # Arabic
21    '1257': 'cp1257', # Baltic
22    '1258': 'cp1258', # Vietnam
23}
24
25
26def toencoding(dxfcodepage):
27    for codepage, encoding in codepages.items():
28        if dxfcodepage.endswith(codepage):
29            return encoding
30    return 'cp1252'
31
32
33def tocodepage(encoding):
34    for codepage, enc in codepages.items():
35        if enc == encoding:
36            return 'ANSI_'+codepage
37    return 'ANSI_1252'
38