level 10
喵喵陳
楼主
pan不給我分享權了,就這樣吧,反正用得上的沒人不能還原@@
拚了3日才113個lang跟對應charset,輸出remark了java,要的自己刪#
import re
def gle(s,k,v,m={}):
s1=s.split('\n'
if("error" not in m.keys()):m["error"]=[]
for x in s1:
s2=x.split('\t')
if(len(s2)<2):
m['error'].append(x)
continue
mks = re.split(r'[ ,/\\]', re.sub(r"\(.*?\)", "", s2[k].lower()))
mv=s2[v].lower()
for key in mks:
if key=='':continue
mk=re.split(r'[-_.@/\\]',key)[0]
if(mk not in m.keys()):m[mk]=set()
res = [r for r in re.split(r"[()/ ,]", mv) if r]
m[mk].update(res)
return m
d1='''arArabic0009009ibm-1089
bgBulgarian0915393ibm-915
csCzech0912390ibm-912
DaDanish0850352ibm-850
daDanish0819333ibm-819
DeGerman0850352ibm-850
deGerman0819333ibm-819
elGreek081332dibm-813
EnEnglish0850352ibm-850
enEnglish0819333ibm-819
EsSpanish Castilian0850352ibm-850
esSpanish Castilian0819333ibm-819
FiFinnish0850352ibm-850
fiFinnish0819333ibm-819
FrFrench0850352ibm-850
frFrench0819333ibm-819
heHebrew0916394ibm-916
hrCroatian0912390ibm-912
huHungarian0912390ibm-912
IsIcelandic0850352ibm-850
isIcelandic0819333ibm-819
ItItalian0850352ibm-850
itItalian0819333ibm-819
JaJapanese09323a4ibm-932
jaJapanese0018012ibm-33722
mkMarshallese0915393ibm-915
NlDutch0850352ibm-850
nlDutch0819333ibm-819
NoNorwegian0850352ibm-850
noNorwegian0819333ibm-819
plPolish0912390ibm-912
PtPortuguese0850352ibm-850
ptPortuguese0819333ibm-819
roRomanian0912390ibm-912
ruRussian0915393ibm-915
shSerbo-Croatian0912390ibm-912
slSlovenian0912390ibm-912
skSlovak0912390ibm-912
srSerbian0915393ibm-915
SvSwedish0850352ibm-850
svSwedish0819333ibm-819
trTurkish0920398ibm-920'''
m=gle(d1,0,-1)
s1=d1.split('\n')
m1={}
for x in s1:
s2=x.split('\t')
mk=s2[0][0:2].lower()
if(mk not in m1.keys()):m1[mk]=[]
m1[mk].append(s2[-1])
d2='''aribm-1089 (ISO-8859-6)阿拉伯語 (Arabic)
bgibm-915 (ISO-8859-5)保加利亞語 (Bulgarian)
csibm-912 (ISO-8859-2)捷克語 (Czech)
daibm-819 (ISO-8859-1)丹麥語 (Danish)小寫代表一般 ISO 映射
Daibm-850丹麥語 (Danish)大寫通常對應 OEM/DOS 映射
deibm-819 (ISO-8859-1)德語 (German)
Deibm-850德語 (German)
elibm-813 (ISO-8859-7)希臘語 (Greek)
enibm-819 (ISO-8859-1)英語 (English)
Enibm-850英語 (English)
esibm-819 (ISO-8859-1)西班牙語 (Spanish)
Esibm-850西班牙語 (Spanish)
fiibm-819 (ISO-8859-1)芬蘭語 (Finnish)
Fiibm-850芬蘭語 (Finnish)
fribm-819 (ISO-8859-1)法語 (French)
Fribm-850法語 (French)
heibm-916 (ISO-8859-8)希伯來語 (Hebrew)
hribm-912 (ISO-8859-2)克羅埃西亞語 (Croatian)
huibm-912 (ISO-8859-2)匈牙利語 (Hungarian)
isibm-819 (ISO-8859-1)冰島語 (Icelandic)
Isibm-850冰島語 (Icelandic)
itibm-819 (ISO-8859-1)義大利語 (Italian)
Itibm-850義大利語 (Italian)
jaibm-33722 (EUC-JP)日語 (Japanese)
Jaibm-943 / ibm-932日語 (Japanese)常見為 Shift-JIS
koibm-949韓語 (Korean)
mkibm-915 (ISO-8859-5)馬其頓語 (Macedonian)
nlibm-819 (ISO-8859-1)荷蘭語 (Dutch)
Nlibm-850荷蘭語 (Dutch)
noibm-819 (ISO-8859-1)挪威語 (Norwegian)
Noibm-850挪威語 (Norwegian)
plibm-912 (ISO-8859-2)波蘭語 (Polish)
ptibm-819 (ISO-8859-1)葡萄牙語 (Portuguese)
Ptibm-850葡萄牙語 (Portuguese)
roibm-912 (ISO-8859-2)羅馬尼亞語 (Romanian)
ruibm-915 (ISO-8859-5)俄語 (Russian)
shibm-912 (ISO-8859-2)塞爾維亞-克羅埃西亞語
slibm-912 (ISO-8859-2)斯洛維尼亞語 (Slovenian)
skibm-912 (ISO-8859-2)斯洛伐克語 (Slovak)
sribm-915 (ISO-8859-5)塞爾維亞語 (Serbian)
svibm-819 (ISO-8859-1)瑞典語 (Swedish)
Svibm-850瑞典語 (Swedish)
tribm-920 (ISO-8859-9)土耳其語 (Turkish)
zh (TW/HK)ibm-950 (Big5)繁體中文
zh (CN)ibm-1388 / ibm-936簡體中文'''
m=gle(d2,0,1,m)
s1=d2.split("\n")
for x in s1:
s2=x.split('\t')
mk=s2[0][0:2].lower()
mv=s2[1].lower()
if(mk not in m1.keys()):m1[mk]=[]
res=re.split(r"[()/]", mv)
m1[mk]+=res
d3='''ar阿拉伯語ibm-1089ISO-8859-6阿拉伯文標準
bg保加利亞語ibm-915ISO-8859-5西里爾字母
cs捷克語ibm-912ISO-8859-2中歐拉丁語系
da丹麥語ibm-819 / ibm-850ISO-8859-1850 為多語言 OEM
de德語ibm-819 / ibm-850ISO-8859-1西歐通用
el希臘語ibm-813ISO-8859-7希臘文
en英語ibm-819 / ibm-850ISO-8859-1
es西班牙語ibm-819 / ibm-850ISO-8859-1
et愛沙尼亞語ibm-921ISO-8859-13波羅的海語系
fi芬蘭語ibm-819 / ibm-850ISO-8859-1
fr法語ibm-819 / ibm-850ISO-8859-1
he / iw希伯來語ibm-916ISO-8859-8包含舊代碼 iw
hi印地語utf-8UTF-8Java 預設不支援 legacy 編碼
hr克羅埃西亞語ibm-912ISO-8859-2
hu匈牙利語ibm-912ISO-8859-2
is冰島語ibm-819 / ibm-850ISO-8859-1
it義大利語ibm-819 / ibm-850ISO-8859-1
ja日語ibm-943 / ibm-33722Shift_JIS / EUC-JP33722 為 EUC-JP
ko韓語ibm-949EUC-KR
lt立陶宛語ibm-921ISO-8859-13
lv拉脫維亞語ibm-921ISO-8859-13
mk馬其頓語ibm-915ISO-8859-5
nl荷蘭語ibm-819 / ibm-850ISO-8859-1
no挪威語ibm-819 / ibm-850ISO-8859-1
pl波蘭語ibm-912ISO-8859-2
pt葡萄牙語ibm-819 / ibm-850ISO-8859-1
ro羅馬尼亞語ibm-912ISO-8859-2
ru俄語ibm-915 / ibm-1251ISO-8859-5Windows 常見 1251
sh / sr塞爾維亞語ibm-912 / ibm-915ISO-8859-2/5區分拉丁/西里爾字母
sk斯洛伐克語ibm-912ISO-8859-2
sl斯洛維尼亞語ibm-912ISO-8859-2
sv瑞典語ibm-819 / ibm-850ISO-8859-1
th泰語ibm-1162 / ibm-874TIS-620Windows-874
tr土耳其語ibm-920ISO-8859-9
uk烏克蘭語ibm-1124ISO-8859-5
vi越南語ibm-1258Windows-1258
zh-CN簡體中文ibm-936 / ibm-1388GBK / GB180301388 為主機端編碼
zh-TW繁體中文ibm-950Big5'''
m=gle(d3,0,2,m)
d4='''ar阿拉伯語ibm-1089ISO-8859-6阿拉伯文標準
bg保加利亞語ibm-915ISO-8859-5西里爾字母
cs捷克語ibm-912ISO-8859-2中歐拉丁語系
da丹麥語ibm-819 / ibm-850ISO-8859-1850 為多語言 OEM
de德語ibm-819 / ibm-850ISO-8859-1西歐通用
el希臘語ibm-813ISO-8859-7希臘文
en英語ibm-819 / ibm-850ISO-8859-1
es西班牙語ibm-819 / ibm-850ISO-8859-1
et愛沙尼亞語ibm-921ISO-8859-13波羅的海語系
fi芬蘭語ibm-819 / ibm-850ISO-8859-1
fr法語ibm-819 / ibm-850ISO-8859-1
he / iw希伯來語ibm-916ISO-8859-8包含舊代碼 iw
hi印地語utf-8UTF-8Java 預設不支援 legacy 編碼
hr克羅埃西亞語ibm-912ISO-8859-2
hu匈牙利語ibm-912ISO-8859-2
is冰島語ibm-819 / ibm-850ISO-8859-1
it義大利語ibm-819 / ibm-850ISO-8859-1
ja日語ibm-943 / ibm-33722Shift_JIS / EUC-JP33722 為 EUC-JP
ko韓語ibm-949EUC-KR
lt立陶宛語ibm-921ISO-8859-13
lv拉脫維亞語ibm-921ISO-8859-13
mk馬其頓語ibm-915ISO-8859-5
nl荷蘭語ibm-819 / ibm-850ISO-8859-1
no挪威語ibm-819 / ibm-850ISO-8859-1
pl波蘭語ibm-912ISO-8859-2
pt葡萄牙語ibm-819 / ibm-850ISO-8859-1
ro羅馬尼亞語ibm-912ISO-8859-2
ru俄語ibm-915 / ibm-1251ISO-8859-5Windows 常見 1251
sh / sr塞爾維亞語ibm-912 / ibm-915ISO-8859-2/5區分拉丁/西里爾字母
sk斯洛伐克語ibm-912ISO-8859-2
sl斯洛維尼亞語ibm-912ISO-8859-2
sv瑞典語ibm-819 / ibm-850ISO-8859-1
th泰語ibm-1162 / ibm-874TIS-620Windows-874
tr土耳其語ibm-920ISO-8859-9
uk烏克蘭語ibm-1124ISO-8859-5
vi越南語ibm-1258Windows-1258
zh-CN簡體中文ibm-936 / ibm-1388GBK / GB180301388 為主機端編碼
zh-TW繁體中文ibm-950Big5'''
m=gle(d4,0,2,m)
#print(m1,len(m1))
d5='''caibm-819, ibm-850, iso-8859-1加泰隆尼亞語 (Catalan)
gaibm-819, iso-8859-1, iso-8859-15愛爾蘭語 (Irish)
mtibm-922, iso-8859-3馬爾他語 (Maltese)
sqibm-912, iso-8859-2阿爾巴尼亞語 (Albanian)
iwibm-916, iso-8859-8希伯來語 (舊代碼,Java 常用)
inibm-819, iso-8859-1印尼語 (舊代碼,現為 id)
msibm-819, iso-8859-1馬來語 (Malay)
faibm-1098, cp1256波斯語 (Persian)
hyibm-1117, armscii-8亞美尼亞語 (Armenian)
kaibm-1118喬治亞語 (Georgian)
azibm-1254, iso-8859-9阿塞拜疆語 (Azerbaijani)'''
m=gle(d5,0,1,m)
d6='''
en, fr, de, es, itISO-8859-1, Windows-1252
pl, cs, sk, huISO-8859-2, Windows-1250
ru, bg, srISO-8859-5, Windows-1251, KOI8-R
ukKOI8-U, Windows-1251
elISO-8859-7, Windows-1253
tr, azISO-8859-9, Windows-1254
heISO-8859-8, Windows-1255
ar, faISO-8859-6, Windows-1256
lv, lt, etISO-8859-13, Windows-1257
viWindows-1258, VISCII
cy, gdISO-8859-14
roISO-8859-2, ISO-8859-16
thTIS-620, ISO-8859-11, Windows-874
zh-CNGBK, GB18030
zh-TW, zh-HKBig5, Big5-HKSCS
jaShift_JIS, EUC-JP, ISO-2022-JP
koEUC-KR, ISO-2022-KR
hyARMSCII-8
kaGEOSTD8
hi, bn, ta, te, mrISCII'''
m=gle(d6,0,1,m)
d7='''
enISO-8859-1 / windows-1252西歐語言 (English, French, German, Spanish, Italian)
frISO-8859-1 / windows-1252法語
deISO-8859-1 / windows-1252德語
esISO-8859-1 / windows-1252西班牙語
itISO-8859-1 / windows-1252義大利語
plISO-8859-2 / windows-1250波蘭語
csISO-8859-2 / windows-1250捷克語
skISO-8859-2 / windows-1250斯洛伐克語
huISO-8859-2 / windows-1250匈牙利語
roISO-8859-2 / ISO-8859-16羅馬尼亞語
ruISO-8859-5 / windows-1251 / KOI8-R俄語
ukISO-8859-5 / KOI8-U / windows-1251烏克蘭語
bgISO-8859-5 / windows-1251保加利亞語
srISO-8859-5 / ISO-8859-2 / windows-1251塞爾維亞語 (西里爾/拉丁)
shISO-8859-2 / ISO-8859-5塞爾維亞-克羅埃西亞語
elISO-8859-7 / windows-1253希臘語
trISO-8859-9 / windows-1254土耳其語
azISO-8859-9 / windows-1254阿塞拜疆語
heISO-8859-8 / windows-1255希伯來語
iwISO-8859-8 / windows-1255希伯來語 (舊代碼)
arISO-8859-6 / windows-1256阿拉伯語
facp1256 / ibm-1098波斯語
hiISCII / UTF-8印地語
bnISCII / UTF-8孟加拉語
taISCII / UTF-8泰米爾語
teISCII / UTF-8泰盧固語
mrISCII / UTF-8馬拉地語
thTIS-620 / ISO-8859-11 / windows-874泰語
viwindows-1258 / VISCII越南語
zh-CNGBK / GB18030簡體中文
zh-TWBig5 / Big5-HKSCS繁體中文
zh-HKBig5-HKSCS香港繁體中文
yueBig5-HKSCS粵語 (廣東話)
jaShift_JIS / EUC-JP / ISO-2022-JP日語
koEUC-KR / ISO-2022-KR韓語
hyARMSCII-8亞美尼亞語
kaGEOSTD8喬治亞語
etISO-8859-13 / windows-1257愛沙尼亞語
lvISO-8859-13 / windows-1257拉脫維亞語
ltISO-8859-13 / windows-1257立陶宛語
cyISO-8859-14威爾士語
gdISO-8859-14蘇格蘭蓋爾語
gaISO-8859-1 / ISO-8859-15愛爾蘭語
mtISO-8859-3 / ibm-922馬爾他語'''
m=gle(d7,0,1,m)
d8='''
seISO-8859-10北歐薩米語 (Northern Sami),ISO-8859-10 支援北歐特殊字母
smiISO-8859-10薩米語族群 (泛用)
brISO-8859-14布列塔尼語 (Breton),凱爾特語支援
kwISO-8859-14康沃爾語 (Cornish),凱爾特語支援
gvISO-8859-14馬恩島語 (Manx),凱爾特語支援
beKOI8-B白俄羅斯語 (Belarusian),有 KOI8-B 舊編碼
mnKOI8-M蒙古語 (Mongolian),有 KOI8-M 舊編碼
paISCII-Punjabi旁遮普語 (Punjabi),ISCII 子集
guISCII-Gujarati古吉拉特語 (Gujarati),ISCII 子集
knISCII-Kannada卡納達語 (Kannada),ISCII 子集
mlISCII-Malayalam馬拉雅拉姆語 (Malayalam),ISCII 子集
orISCII-Oriya奧里亞語 (Oriya),ISCII 子集
siISCII-Sinhala僧伽羅語 (Sinhala),雖然現代多用 UTF-8'''
m=gle(d8,0,1,m)
d9='''
eoISO-8859-3世界語 (Esperanto),常見於 ISO-8859-3
laISO-8859-1拉丁語 (Latin),通常 fallback 到西歐 Latin-1
saISCII-Sanskrit梵語 (Sanskrit),ISCII 子集
ksISCII-Kashmiri喀什米爾語 (Kashmiri),ISCII 子集
neISCII-Nepali尼泊爾語 (Nepali),ISCII 子集
urcp1256 / ISO-8859-6烏爾都語 (Urdu),多用阿拉伯字母編碼
amEthiopic (ECMA-114)阿姆哈拉語 (Amharic),有舊 Ethiopic 編碼,現多用 UTF-8
tiEthiopic (ECMA-114)提格里尼亞語 (Tigrinya),同上
dzUnicode only (UTF-8)不丹語 (Dzongkha),舊系統無 legacy charset,僅 UTF-8
kmKhmer (legacy Khmer encoding)高棉語 (Khmer),有舊 Khmer 字集,現多用 UTF-8
loLao (legacy Lao encoding)寮語 (Lao),有舊 Lao 字集,現多用 UTF-8
kkKOI8-K哈薩克語 (Kazakh),有 KOI8-K 舊編碼
tgKOI8-T塔吉克語 (Tajik),有 KOI8-T 舊編碼
uzKOI8-UZ烏茲別克語 (Uzbek),有 KOI8-UZ 舊編碼
kk / tg / uzcp866前蘇聯地區常用 OEM Cyrillic 編碼
becp1251白俄羅斯語 (Belarusian),Windows 常用 1251
kkcp1251哈薩克語 (Kazakh),Windows 常用 1251
tgcp1251塔吉克語 (Tajik),Windows 常用 1251
uzcp1251烏茲別克語 (Uzbek),Windows 常用 1251
kaUnicode only (UTF-8)喬治亞語 (Georgian),現代系統僅 UTF-8
sicp1252 (fallback)僧伽羅語 (Sinhala),舊系統多用 UTF-8,少數 fallback Latin-1
mylegacy Burmese encoding緬甸語 (Burmese),有舊 Burmese 字集,現多用 UTF-8
pscp1256普什圖語 (Pashto),阿拉伯字母編碼
kscp1256喀什米爾語 (Kashmiri),阿拉伯字母編碼
sdcp1256信德語 (Sindhi),阿拉伯字母編碼
bsISO-8859-2 / cp1250波士尼亞語 (Bosnian),通常與塞爾維亞/克羅埃西亞共用中歐編碼
mkcp1251馬其頓語 (Macedonian),Windows 常用 1251
kkISO-8859-5哈薩克語 (Kazakh),部分舊系統用 ISO-8859-5
tgISO-8859-5塔吉克語 (Tajik),部分舊系統用 ISO-8859-5
uzISO-8859-5烏茲別克語 (Uzbek),部分舊系統用 ISO-8859-5
beISO-8859-5白俄羅斯語 (Belarusian),常見 Cyrillic legacy 編碼
kk / tg / uzKOI8-RU前蘇聯地區混合俄/烏/中亞的 KOI8 變種
aaUTF-8 only阿法爾語 (Afar),舊系統無 legacy charset
omUTF-8 only奧羅莫語 (Oromo),舊系統無 legacy charset
swcp1252 / ISO-8859-1斯瓦西里語 (Swahili),多用西歐 Latin-1
hacp1252 / ISO-8859-1豪薩語 (Hausa),多用西歐 Latin-1
yocp1252 / ISO-8859-1約魯巴語 (Yoruba),多用西歐 Latin-1
igcp1252 / ISO-8859-1伊博語 (Igbo),多用西歐 Latin-1
zucp1252 / ISO-8859-1祖魯語 (Zulu),多用西歐 Latin-1
xhcp1252 / ISO-8859-1科薩語 (Xhosa),多用西歐 Latin-1
tkcp1254 / ISO-8859-9土庫曼語 (Turkmen),多用土耳其語編碼
kycp1251 / ISO-8859-5吉爾吉斯語 (Kyrgyz),Cyrillic legacy 編碼
mocp1251 / ISO-8859-5摩爾多瓦語 (Moldovan),常視為羅馬尼亞語變體
bacp1251 / ISO-8859-5巴什基爾語 (Bashkir),Cyrillic legacy 編碼
ttcp1251 / ISO-8859-5鞑靼語 (Tatar),Cyrillic legacy 編碼
cvcp1251 / ISO-8859-5楚瓦什語 (Chuvash),Cyrillic legacy 編碼
ugcp1256 / ISO-8859-6維吾爾語 (Uyghur),阿拉伯字母編碼
kk / tg / uzKOI8-F前蘇聯地區的 KOI8 另一變種 (白俄/中亞)
syrcp1256敘利亞語 (Syriac),阿拉伯字母編碼,現多用 UTF‑8
bercp1252柏柏爾語 (Berber),舊系統多 fallback Latin‑1
qucp1252克丘亞語 (Quechua),拉丁字母,舊系統多 fallback Latin‑1
aycp1252艾馬拉語 (Aymara),拉丁字母,舊系統多 fallback Latin‑1
gncp1252瓜拉尼語 (Guarani),拉丁字母,舊系統多 fallback Latin‑1
micp1252毛利語 (Māori),拉丁字母,舊系統多 fallback Latin‑1
smcp1252薩摩亞語 (Samoan),拉丁字母,舊系統多 fallback Latin‑1
tocp1252東加語 (Tongan),拉丁字母,舊系統多 fallback Latin‑1
fjcp1252斐濟語 (Fijian),拉丁字母,舊系統多 fallback Latin‑1
kk / tg / uzKOI8-UZ / KOI8-KZ中亞地區的 KOI8 變種,歷史上曾用於哈薩克/烏茲別克
kk / tg / uzPTCP154西里爾字母的哈薩克語編碼 (Kazakh Cyrillic),舊主機系統常見
kk / tg / uzRK1048哈薩克語另一舊編碼 (Kazakh legacy)
kaPS Georgian喬治亞語 (Georgian),有舊 PS/GEOSTD8 以外的編碼
mnMongolian legacy蒙古語 (Mongolian),有舊 Mongolian script 編碼,現多用 UTF‑8
boTibetan legacy藏語 (Tibetan),有舊 Tibetan script 編碼,現多用 UTF‑8
siISCII-Sinhala僧伽羅語 (Sinhala),除了 cp1252 fallback,也有 ISCII 子集
ksISCII-Kashmiri喀什米爾語 (Kashmiri),除 cp1256 外也有 ISCII 子集
neISCII-Nepali尼泊爾語 (Nepali),除 UTF‑8 外也有 ISCII 子集
piISCII-Pali巴利語 (Pali),印度次大陸古典語言,ISCII 子集
sdISCII-Sindhi信德語 (Sindhi),除 cp1256 外也有 ISCII 子集
ugArabic Presentation Forms維吾爾語 (Uyghur),部分舊系統用阿拉伯字母特殊編碼
syrSyriac legacy敘利亞語 (Syriac),有舊 Syriac script 編碼,現多用 UTF‑8
berISO-8859-16柏柏爾語 (Berber),部分舊系統用 ISO-8859-16 拉丁擴展
qu / ay / gnISO-8859-1 / cp1252南美語言 (Quechua, Aymara, Guarani),舊系統多 fallback Latin‑1
mi / sm / to / fjISO-8859-1 / cp1252太平洋語言 (Māori, Samoan, Tongan, Fijian),舊系統多 fallback Latin‑1
'''
m=gle(d9,0,1,m)
print(m,len(m)-1,'還有增補嗎?有的請放table喵')
res="private Map<String,List<String>> localecharset=Map.ofEntries("
for k in m:
if(k=="error"):continue
s='List.of('
for x in m[k]:
s+=f'"{x}",'
s+="\b)"
res+=f'\nMap.entry("{k}",{s}),'
res+='\b);'
#print(res)
2025年12月28日 07点12分
1
拚了3日才113個lang跟對應charset,輸出remark了java,要的自己刪#
import re
def gle(s,k,v,m={}):
s1=s.split('\n'
if("error" not in m.keys()):m["error"]=[]
for x in s1:
s2=x.split('\t')
if(len(s2)<2):
m['error'].append(x)
continue
mks = re.split(r'[ ,/\\]', re.sub(r"\(.*?\)", "", s2[k].lower()))
mv=s2[v].lower()
for key in mks:
if key=='':continue
mk=re.split(r'[-_.@/\\]',key)[0]
if(mk not in m.keys()):m[mk]=set()
res = [r for r in re.split(r"[()/ ,]", mv) if r]
m[mk].update(res)
return m
d1='''arArabic0009009ibm-1089
bgBulgarian0915393ibm-915
csCzech0912390ibm-912
DaDanish0850352ibm-850
daDanish0819333ibm-819
DeGerman0850352ibm-850
deGerman0819333ibm-819
elGreek081332dibm-813
EnEnglish0850352ibm-850
enEnglish0819333ibm-819
EsSpanish Castilian0850352ibm-850
esSpanish Castilian0819333ibm-819
FiFinnish0850352ibm-850
fiFinnish0819333ibm-819
FrFrench0850352ibm-850
frFrench0819333ibm-819
heHebrew0916394ibm-916
hrCroatian0912390ibm-912
huHungarian0912390ibm-912
IsIcelandic0850352ibm-850
isIcelandic0819333ibm-819
ItItalian0850352ibm-850
itItalian0819333ibm-819
JaJapanese09323a4ibm-932
jaJapanese0018012ibm-33722
mkMarshallese0915393ibm-915
NlDutch0850352ibm-850
nlDutch0819333ibm-819
NoNorwegian0850352ibm-850
noNorwegian0819333ibm-819
plPolish0912390ibm-912
PtPortuguese0850352ibm-850
ptPortuguese0819333ibm-819
roRomanian0912390ibm-912
ruRussian0915393ibm-915
shSerbo-Croatian0912390ibm-912
slSlovenian0912390ibm-912
skSlovak0912390ibm-912
srSerbian0915393ibm-915
SvSwedish0850352ibm-850
svSwedish0819333ibm-819
trTurkish0920398ibm-920'''
m=gle(d1,0,-1)
s1=d1.split('\n')
m1={}
for x in s1:
s2=x.split('\t')
mk=s2[0][0:2].lower()
if(mk not in m1.keys()):m1[mk]=[]
m1[mk].append(s2[-1])
d2='''aribm-1089 (ISO-8859-6)阿拉伯語 (Arabic)
bgibm-915 (ISO-8859-5)保加利亞語 (Bulgarian)
csibm-912 (ISO-8859-2)捷克語 (Czech)
daibm-819 (ISO-8859-1)丹麥語 (Danish)小寫代表一般 ISO 映射
Daibm-850丹麥語 (Danish)大寫通常對應 OEM/DOS 映射
deibm-819 (ISO-8859-1)德語 (German)
Deibm-850德語 (German)
elibm-813 (ISO-8859-7)希臘語 (Greek)
enibm-819 (ISO-8859-1)英語 (English)
Enibm-850英語 (English)
esibm-819 (ISO-8859-1)西班牙語 (Spanish)
Esibm-850西班牙語 (Spanish)
fiibm-819 (ISO-8859-1)芬蘭語 (Finnish)
Fiibm-850芬蘭語 (Finnish)
fribm-819 (ISO-8859-1)法語 (French)
Fribm-850法語 (French)
heibm-916 (ISO-8859-8)希伯來語 (Hebrew)
hribm-912 (ISO-8859-2)克羅埃西亞語 (Croatian)
huibm-912 (ISO-8859-2)匈牙利語 (Hungarian)
isibm-819 (ISO-8859-1)冰島語 (Icelandic)
Isibm-850冰島語 (Icelandic)
itibm-819 (ISO-8859-1)義大利語 (Italian)
Itibm-850義大利語 (Italian)
jaibm-33722 (EUC-JP)日語 (Japanese)
Jaibm-943 / ibm-932日語 (Japanese)常見為 Shift-JIS
koibm-949韓語 (Korean)
mkibm-915 (ISO-8859-5)馬其頓語 (Macedonian)
nlibm-819 (ISO-8859-1)荷蘭語 (Dutch)
Nlibm-850荷蘭語 (Dutch)
noibm-819 (ISO-8859-1)挪威語 (Norwegian)
Noibm-850挪威語 (Norwegian)
plibm-912 (ISO-8859-2)波蘭語 (Polish)
ptibm-819 (ISO-8859-1)葡萄牙語 (Portuguese)
Ptibm-850葡萄牙語 (Portuguese)
roibm-912 (ISO-8859-2)羅馬尼亞語 (Romanian)
ruibm-915 (ISO-8859-5)俄語 (Russian)
shibm-912 (ISO-8859-2)塞爾維亞-克羅埃西亞語
slibm-912 (ISO-8859-2)斯洛維尼亞語 (Slovenian)
skibm-912 (ISO-8859-2)斯洛伐克語 (Slovak)
sribm-915 (ISO-8859-5)塞爾維亞語 (Serbian)
svibm-819 (ISO-8859-1)瑞典語 (Swedish)
Svibm-850瑞典語 (Swedish)
tribm-920 (ISO-8859-9)土耳其語 (Turkish)
zh (TW/HK)ibm-950 (Big5)繁體中文
zh (CN)ibm-1388 / ibm-936簡體中文'''
m=gle(d2,0,1,m)
s1=d2.split("\n")
for x in s1:
s2=x.split('\t')
mk=s2[0][0:2].lower()
mv=s2[1].lower()
if(mk not in m1.keys()):m1[mk]=[]
res=re.split(r"[()/]", mv)
m1[mk]+=res
d3='''ar阿拉伯語ibm-1089ISO-8859-6阿拉伯文標準
bg保加利亞語ibm-915ISO-8859-5西里爾字母
cs捷克語ibm-912ISO-8859-2中歐拉丁語系
da丹麥語ibm-819 / ibm-850ISO-8859-1850 為多語言 OEM
de德語ibm-819 / ibm-850ISO-8859-1西歐通用
el希臘語ibm-813ISO-8859-7希臘文
en英語ibm-819 / ibm-850ISO-8859-1
es西班牙語ibm-819 / ibm-850ISO-8859-1
et愛沙尼亞語ibm-921ISO-8859-13波羅的海語系
fi芬蘭語ibm-819 / ibm-850ISO-8859-1
fr法語ibm-819 / ibm-850ISO-8859-1
he / iw希伯來語ibm-916ISO-8859-8包含舊代碼 iw
hi印地語utf-8UTF-8Java 預設不支援 legacy 編碼
hr克羅埃西亞語ibm-912ISO-8859-2
hu匈牙利語ibm-912ISO-8859-2
is冰島語ibm-819 / ibm-850ISO-8859-1
it義大利語ibm-819 / ibm-850ISO-8859-1
ja日語ibm-943 / ibm-33722Shift_JIS / EUC-JP33722 為 EUC-JP
ko韓語ibm-949EUC-KR
lt立陶宛語ibm-921ISO-8859-13
lv拉脫維亞語ibm-921ISO-8859-13
mk馬其頓語ibm-915ISO-8859-5
nl荷蘭語ibm-819 / ibm-850ISO-8859-1
no挪威語ibm-819 / ibm-850ISO-8859-1
pl波蘭語ibm-912ISO-8859-2
pt葡萄牙語ibm-819 / ibm-850ISO-8859-1
ro羅馬尼亞語ibm-912ISO-8859-2
ru俄語ibm-915 / ibm-1251ISO-8859-5Windows 常見 1251
sh / sr塞爾維亞語ibm-912 / ibm-915ISO-8859-2/5區分拉丁/西里爾字母
sk斯洛伐克語ibm-912ISO-8859-2
sl斯洛維尼亞語ibm-912ISO-8859-2
sv瑞典語ibm-819 / ibm-850ISO-8859-1
th泰語ibm-1162 / ibm-874TIS-620Windows-874
tr土耳其語ibm-920ISO-8859-9
uk烏克蘭語ibm-1124ISO-8859-5
vi越南語ibm-1258Windows-1258
zh-CN簡體中文ibm-936 / ibm-1388GBK / GB180301388 為主機端編碼
zh-TW繁體中文ibm-950Big5'''
m=gle(d3,0,2,m)
d4='''ar阿拉伯語ibm-1089ISO-8859-6阿拉伯文標準
bg保加利亞語ibm-915ISO-8859-5西里爾字母
cs捷克語ibm-912ISO-8859-2中歐拉丁語系
da丹麥語ibm-819 / ibm-850ISO-8859-1850 為多語言 OEM
de德語ibm-819 / ibm-850ISO-8859-1西歐通用
el希臘語ibm-813ISO-8859-7希臘文
en英語ibm-819 / ibm-850ISO-8859-1
es西班牙語ibm-819 / ibm-850ISO-8859-1
et愛沙尼亞語ibm-921ISO-8859-13波羅的海語系
fi芬蘭語ibm-819 / ibm-850ISO-8859-1
fr法語ibm-819 / ibm-850ISO-8859-1
he / iw希伯來語ibm-916ISO-8859-8包含舊代碼 iw
hi印地語utf-8UTF-8Java 預設不支援 legacy 編碼
hr克羅埃西亞語ibm-912ISO-8859-2
hu匈牙利語ibm-912ISO-8859-2
is冰島語ibm-819 / ibm-850ISO-8859-1
it義大利語ibm-819 / ibm-850ISO-8859-1
ja日語ibm-943 / ibm-33722Shift_JIS / EUC-JP33722 為 EUC-JP
ko韓語ibm-949EUC-KR
lt立陶宛語ibm-921ISO-8859-13
lv拉脫維亞語ibm-921ISO-8859-13
mk馬其頓語ibm-915ISO-8859-5
nl荷蘭語ibm-819 / ibm-850ISO-8859-1
no挪威語ibm-819 / ibm-850ISO-8859-1
pl波蘭語ibm-912ISO-8859-2
pt葡萄牙語ibm-819 / ibm-850ISO-8859-1
ro羅馬尼亞語ibm-912ISO-8859-2
ru俄語ibm-915 / ibm-1251ISO-8859-5Windows 常見 1251
sh / sr塞爾維亞語ibm-912 / ibm-915ISO-8859-2/5區分拉丁/西里爾字母
sk斯洛伐克語ibm-912ISO-8859-2
sl斯洛維尼亞語ibm-912ISO-8859-2
sv瑞典語ibm-819 / ibm-850ISO-8859-1
th泰語ibm-1162 / ibm-874TIS-620Windows-874
tr土耳其語ibm-920ISO-8859-9
uk烏克蘭語ibm-1124ISO-8859-5
vi越南語ibm-1258Windows-1258
zh-CN簡體中文ibm-936 / ibm-1388GBK / GB180301388 為主機端編碼
zh-TW繁體中文ibm-950Big5'''
m=gle(d4,0,2,m)
#print(m1,len(m1))
d5='''caibm-819, ibm-850, iso-8859-1加泰隆尼亞語 (Catalan)
gaibm-819, iso-8859-1, iso-8859-15愛爾蘭語 (Irish)
mtibm-922, iso-8859-3馬爾他語 (Maltese)
sqibm-912, iso-8859-2阿爾巴尼亞語 (Albanian)
iwibm-916, iso-8859-8希伯來語 (舊代碼,Java 常用)
inibm-819, iso-8859-1印尼語 (舊代碼,現為 id)
msibm-819, iso-8859-1馬來語 (Malay)
faibm-1098, cp1256波斯語 (Persian)
hyibm-1117, armscii-8亞美尼亞語 (Armenian)
kaibm-1118喬治亞語 (Georgian)
azibm-1254, iso-8859-9阿塞拜疆語 (Azerbaijani)'''
m=gle(d5,0,1,m)
d6='''
en, fr, de, es, itISO-8859-1, Windows-1252
pl, cs, sk, huISO-8859-2, Windows-1250
ru, bg, srISO-8859-5, Windows-1251, KOI8-R
ukKOI8-U, Windows-1251
elISO-8859-7, Windows-1253
tr, azISO-8859-9, Windows-1254
heISO-8859-8, Windows-1255
ar, faISO-8859-6, Windows-1256
lv, lt, etISO-8859-13, Windows-1257
viWindows-1258, VISCII
cy, gdISO-8859-14
roISO-8859-2, ISO-8859-16
thTIS-620, ISO-8859-11, Windows-874
zh-CNGBK, GB18030
zh-TW, zh-HKBig5, Big5-HKSCS
jaShift_JIS, EUC-JP, ISO-2022-JP
koEUC-KR, ISO-2022-KR
hyARMSCII-8
kaGEOSTD8
hi, bn, ta, te, mrISCII'''
m=gle(d6,0,1,m)
d7='''
enISO-8859-1 / windows-1252西歐語言 (English, French, German, Spanish, Italian)
frISO-8859-1 / windows-1252法語
deISO-8859-1 / windows-1252德語
esISO-8859-1 / windows-1252西班牙語
itISO-8859-1 / windows-1252義大利語
plISO-8859-2 / windows-1250波蘭語
csISO-8859-2 / windows-1250捷克語
skISO-8859-2 / windows-1250斯洛伐克語
huISO-8859-2 / windows-1250匈牙利語
roISO-8859-2 / ISO-8859-16羅馬尼亞語
ruISO-8859-5 / windows-1251 / KOI8-R俄語
ukISO-8859-5 / KOI8-U / windows-1251烏克蘭語
bgISO-8859-5 / windows-1251保加利亞語
srISO-8859-5 / ISO-8859-2 / windows-1251塞爾維亞語 (西里爾/拉丁)
shISO-8859-2 / ISO-8859-5塞爾維亞-克羅埃西亞語
elISO-8859-7 / windows-1253希臘語
trISO-8859-9 / windows-1254土耳其語
azISO-8859-9 / windows-1254阿塞拜疆語
heISO-8859-8 / windows-1255希伯來語
iwISO-8859-8 / windows-1255希伯來語 (舊代碼)
arISO-8859-6 / windows-1256阿拉伯語
facp1256 / ibm-1098波斯語
hiISCII / UTF-8印地語
bnISCII / UTF-8孟加拉語
taISCII / UTF-8泰米爾語
teISCII / UTF-8泰盧固語
mrISCII / UTF-8馬拉地語
thTIS-620 / ISO-8859-11 / windows-874泰語
viwindows-1258 / VISCII越南語
zh-CNGBK / GB18030簡體中文
zh-TWBig5 / Big5-HKSCS繁體中文
zh-HKBig5-HKSCS香港繁體中文
yueBig5-HKSCS粵語 (廣東話)
jaShift_JIS / EUC-JP / ISO-2022-JP日語
koEUC-KR / ISO-2022-KR韓語
hyARMSCII-8亞美尼亞語
kaGEOSTD8喬治亞語
etISO-8859-13 / windows-1257愛沙尼亞語
lvISO-8859-13 / windows-1257拉脫維亞語
ltISO-8859-13 / windows-1257立陶宛語
cyISO-8859-14威爾士語
gdISO-8859-14蘇格蘭蓋爾語
gaISO-8859-1 / ISO-8859-15愛爾蘭語
mtISO-8859-3 / ibm-922馬爾他語'''
m=gle(d7,0,1,m)
d8='''
seISO-8859-10北歐薩米語 (Northern Sami),ISO-8859-10 支援北歐特殊字母
smiISO-8859-10薩米語族群 (泛用)
brISO-8859-14布列塔尼語 (Breton),凱爾特語支援
kwISO-8859-14康沃爾語 (Cornish),凱爾特語支援
gvISO-8859-14馬恩島語 (Manx),凱爾特語支援
beKOI8-B白俄羅斯語 (Belarusian),有 KOI8-B 舊編碼
mnKOI8-M蒙古語 (Mongolian),有 KOI8-M 舊編碼
paISCII-Punjabi旁遮普語 (Punjabi),ISCII 子集
guISCII-Gujarati古吉拉特語 (Gujarati),ISCII 子集
knISCII-Kannada卡納達語 (Kannada),ISCII 子集
mlISCII-Malayalam馬拉雅拉姆語 (Malayalam),ISCII 子集
orISCII-Oriya奧里亞語 (Oriya),ISCII 子集
siISCII-Sinhala僧伽羅語 (Sinhala),雖然現代多用 UTF-8'''
m=gle(d8,0,1,m)
d9='''
eoISO-8859-3世界語 (Esperanto),常見於 ISO-8859-3
laISO-8859-1拉丁語 (Latin),通常 fallback 到西歐 Latin-1
saISCII-Sanskrit梵語 (Sanskrit),ISCII 子集
ksISCII-Kashmiri喀什米爾語 (Kashmiri),ISCII 子集
neISCII-Nepali尼泊爾語 (Nepali),ISCII 子集
urcp1256 / ISO-8859-6烏爾都語 (Urdu),多用阿拉伯字母編碼
amEthiopic (ECMA-114)阿姆哈拉語 (Amharic),有舊 Ethiopic 編碼,現多用 UTF-8
tiEthiopic (ECMA-114)提格里尼亞語 (Tigrinya),同上
dzUnicode only (UTF-8)不丹語 (Dzongkha),舊系統無 legacy charset,僅 UTF-8
kmKhmer (legacy Khmer encoding)高棉語 (Khmer),有舊 Khmer 字集,現多用 UTF-8
loLao (legacy Lao encoding)寮語 (Lao),有舊 Lao 字集,現多用 UTF-8
kkKOI8-K哈薩克語 (Kazakh),有 KOI8-K 舊編碼
tgKOI8-T塔吉克語 (Tajik),有 KOI8-T 舊編碼
uzKOI8-UZ烏茲別克語 (Uzbek),有 KOI8-UZ 舊編碼
kk / tg / uzcp866前蘇聯地區常用 OEM Cyrillic 編碼
becp1251白俄羅斯語 (Belarusian),Windows 常用 1251
kkcp1251哈薩克語 (Kazakh),Windows 常用 1251
tgcp1251塔吉克語 (Tajik),Windows 常用 1251
uzcp1251烏茲別克語 (Uzbek),Windows 常用 1251
kaUnicode only (UTF-8)喬治亞語 (Georgian),現代系統僅 UTF-8
sicp1252 (fallback)僧伽羅語 (Sinhala),舊系統多用 UTF-8,少數 fallback Latin-1
mylegacy Burmese encoding緬甸語 (Burmese),有舊 Burmese 字集,現多用 UTF-8
pscp1256普什圖語 (Pashto),阿拉伯字母編碼
kscp1256喀什米爾語 (Kashmiri),阿拉伯字母編碼
sdcp1256信德語 (Sindhi),阿拉伯字母編碼
bsISO-8859-2 / cp1250波士尼亞語 (Bosnian),通常與塞爾維亞/克羅埃西亞共用中歐編碼
mkcp1251馬其頓語 (Macedonian),Windows 常用 1251
kkISO-8859-5哈薩克語 (Kazakh),部分舊系統用 ISO-8859-5
tgISO-8859-5塔吉克語 (Tajik),部分舊系統用 ISO-8859-5
uzISO-8859-5烏茲別克語 (Uzbek),部分舊系統用 ISO-8859-5
beISO-8859-5白俄羅斯語 (Belarusian),常見 Cyrillic legacy 編碼
kk / tg / uzKOI8-RU前蘇聯地區混合俄/烏/中亞的 KOI8 變種
aaUTF-8 only阿法爾語 (Afar),舊系統無 legacy charset
omUTF-8 only奧羅莫語 (Oromo),舊系統無 legacy charset
swcp1252 / ISO-8859-1斯瓦西里語 (Swahili),多用西歐 Latin-1
hacp1252 / ISO-8859-1豪薩語 (Hausa),多用西歐 Latin-1
yocp1252 / ISO-8859-1約魯巴語 (Yoruba),多用西歐 Latin-1
igcp1252 / ISO-8859-1伊博語 (Igbo),多用西歐 Latin-1
zucp1252 / ISO-8859-1祖魯語 (Zulu),多用西歐 Latin-1
xhcp1252 / ISO-8859-1科薩語 (Xhosa),多用西歐 Latin-1
tkcp1254 / ISO-8859-9土庫曼語 (Turkmen),多用土耳其語編碼
kycp1251 / ISO-8859-5吉爾吉斯語 (Kyrgyz),Cyrillic legacy 編碼
mocp1251 / ISO-8859-5摩爾多瓦語 (Moldovan),常視為羅馬尼亞語變體
bacp1251 / ISO-8859-5巴什基爾語 (Bashkir),Cyrillic legacy 編碼
ttcp1251 / ISO-8859-5鞑靼語 (Tatar),Cyrillic legacy 編碼
cvcp1251 / ISO-8859-5楚瓦什語 (Chuvash),Cyrillic legacy 編碼
ugcp1256 / ISO-8859-6維吾爾語 (Uyghur),阿拉伯字母編碼
kk / tg / uzKOI8-F前蘇聯地區的 KOI8 另一變種 (白俄/中亞)
syrcp1256敘利亞語 (Syriac),阿拉伯字母編碼,現多用 UTF‑8
bercp1252柏柏爾語 (Berber),舊系統多 fallback Latin‑1
qucp1252克丘亞語 (Quechua),拉丁字母,舊系統多 fallback Latin‑1
aycp1252艾馬拉語 (Aymara),拉丁字母,舊系統多 fallback Latin‑1
gncp1252瓜拉尼語 (Guarani),拉丁字母,舊系統多 fallback Latin‑1
micp1252毛利語 (Māori),拉丁字母,舊系統多 fallback Latin‑1
smcp1252薩摩亞語 (Samoan),拉丁字母,舊系統多 fallback Latin‑1
tocp1252東加語 (Tongan),拉丁字母,舊系統多 fallback Latin‑1
fjcp1252斐濟語 (Fijian),拉丁字母,舊系統多 fallback Latin‑1
kk / tg / uzKOI8-UZ / KOI8-KZ中亞地區的 KOI8 變種,歷史上曾用於哈薩克/烏茲別克
kk / tg / uzPTCP154西里爾字母的哈薩克語編碼 (Kazakh Cyrillic),舊主機系統常見
kk / tg / uzRK1048哈薩克語另一舊編碼 (Kazakh legacy)
kaPS Georgian喬治亞語 (Georgian),有舊 PS/GEOSTD8 以外的編碼
mnMongolian legacy蒙古語 (Mongolian),有舊 Mongolian script 編碼,現多用 UTF‑8
boTibetan legacy藏語 (Tibetan),有舊 Tibetan script 編碼,現多用 UTF‑8
siISCII-Sinhala僧伽羅語 (Sinhala),除了 cp1252 fallback,也有 ISCII 子集
ksISCII-Kashmiri喀什米爾語 (Kashmiri),除 cp1256 外也有 ISCII 子集
neISCII-Nepali尼泊爾語 (Nepali),除 UTF‑8 外也有 ISCII 子集
piISCII-Pali巴利語 (Pali),印度次大陸古典語言,ISCII 子集
sdISCII-Sindhi信德語 (Sindhi),除 cp1256 外也有 ISCII 子集
ugArabic Presentation Forms維吾爾語 (Uyghur),部分舊系統用阿拉伯字母特殊編碼
syrSyriac legacy敘利亞語 (Syriac),有舊 Syriac script 編碼,現多用 UTF‑8
berISO-8859-16柏柏爾語 (Berber),部分舊系統用 ISO-8859-16 拉丁擴展
qu / ay / gnISO-8859-1 / cp1252南美語言 (Quechua, Aymara, Guarani),舊系統多 fallback Latin‑1
mi / sm / to / fjISO-8859-1 / cp1252太平洋語言 (Māori, Samoan, Tongan, Fijian),舊系統多 fallback Latin‑1
'''
m=gle(d9,0,1,m)
print(m,len(m)-1,'還有增補嗎?有的請放table喵')
res="private Map<String,List<String>> localecharset=Map.ofEntries("
for k in m:
if(k=="error"):continue
s='List.of('
for x in m[k]:
s+=f'"{x}",'
s+="\b)"
res+=f'\nMap.entry("{k}",{s}),'
res+='\b);'
#print(res)
