.net – CodePage ID到CodePage名称:Delphi中的GetEncoding等价
发布时间:2020-12-15 09:39:29 所属栏目:大数据 来源:网络整理
导读:我正在寻找与Delphi7中使用的.Net Encoding.GetEncoding方法相当的Win32. 我想要实现的是将代码页ID(即:28592)转换为代码页名称(在这种情况下为iso-8859-2). 我找到了一个名为GetCPInfoEx的Win32函数,但它返回一个长的CodePage名称,我需要一个简短的名称,就
我正在寻找与Delphi7中使用的.Net Encoding.GetEncoding方法相当的Win32.
我想要实现的是将代码页ID(即:28592)转换为代码页名称(在这种情况下为iso-8859-2). 我找到了一个名为GetCPInfoEx的Win32函数,但它返回一个长的CodePage名称,我需要一个简短的名称,就像本页列出的那样:(参见名称列) 谢谢! 解决方法
这是我的代码查找表,随时可以使用它.
type TCPData = record CPID: Integer; CPName: String; end; const MaxEncodings = 140; Encodings: Array[0..MaxEncodings - 1] of TCPData = ( (CPID: 37; CPName: 'IBM037'),(CPID: 437; CPName: 'IBM437'),(CPID: 500; CPName: 'IBM500'),(CPID: 708; CPName: 'ASMO-708'),(CPID: 720; CPName: 'DOS-720'),(CPID: 737; CPName: 'ibm737'),(CPID: 775; CPName: 'ibm775'),(CPID: 850; CPName: 'ibm850'),(CPID: 852; CPName: 'ibm852'),(CPID: 855; CPName: 'IBM855'),(CPID: 857; CPName: 'ibm857'),(CPID: 858; CPName: 'IBM00858'),(CPID: 860; CPName: 'IBM860'),(CPID: 861; CPName: 'ibm861'),(CPID: 862; CPName: 'DOS-862'),(CPID: 863; CPName: 'IBM863'),(CPID: 864; CPName: 'IBM864'),(CPID: 865; CPName: 'IBM865'),(CPID: 866; CPName: 'cp866'),(CPID: 869; CPName: 'ibm869'),(CPID: 870; CPName: 'IBM870'),(CPID: 874; CPName: 'windows-874'),(CPID: 875; CPName: 'cp875'),(CPID: 932; CPName: 'shift_jis'),(CPID: 936; CPName: 'gb2312'),(CPID: 949; CPName: 'ks_c_5601-1987'),(CPID: 950; CPName: 'big5'),(CPID: 1026; CPName: 'IBM1026'),(CPID: 1047; CPName: 'IBM01047'),(CPID: 1140; CPName: 'IBM01140'),(CPID: 1141; CPName: 'IBM01141'),(CPID: 1142; CPName: 'IBM01142'),(CPID: 1143; CPName: 'IBM01143'),(CPID: 1144; CPName: 'IBM01144'),(CPID: 1145; CPName: 'IBM01145'),(CPID: 1146; CPName: 'IBM01146'),(CPID: 1147; CPName: 'IBM01147'),(CPID: 1148; CPName: 'IBM01148'),(CPID: 1149; CPName: 'IBM01149'),(CPID: 1200; CPName: 'utf-16'),(CPID: 1201; CPName: 'unicodeFFFE'),(CPID: 1250; CPName: 'windows-1250'),(CPID: 1251; CPName: 'windows-1251'),(CPID: 1252; CPName: 'Windows-1252'),(CPID: 1253; CPName: 'windows-1253'),(CPID: 1254; CPName: 'windows-1254'),(CPID: 1255; CPName: 'windows-1255'),(CPID: 1256; CPName: 'windows-1256'),(CPID: 1257; CPName: 'windows-1257'),(CPID: 1258; CPName: 'windows-1258'),(CPID: 1361; CPName: 'Johab'),(CPID: 10000; CPName: 'macintosh'),(CPID: 10001; CPName: 'x-mac-japanese'),(CPID: 10002; CPName: 'x-mac-chinesetrad'),(CPID: 10003; CPName: 'x-mac-korean'),(CPID: 10004; CPName: 'x-mac-arabic'),(CPID: 10005; CPName: 'x-mac-hebrew'),(CPID: 10006; CPName: 'x-mac-greek'),(CPID: 10007; CPName: 'x-mac-cyrillic'),(CPID: 10008; CPName: 'x-mac-chinesesimp'),(CPID: 10010; CPName: 'x-mac-romanian'),(CPID: 10017; CPName: 'x-mac-ukrainian'),(CPID: 10021; CPName: 'x-mac-thai'),(CPID: 10029; CPName: 'x-mac-ce'),(CPID: 10079; CPName: 'x-mac-icelandic'),(CPID: 10081; CPName: 'x-mac-turkish'),(CPID: 10082; CPName: 'x-mac-croatian'),(CPID: 12000; CPName: 'utf-32'),(CPID: 12001; CPName: 'utf-32BE'),(CPID: 20000; CPName: 'x-Chinese-CNS'),(CPID: 20001; CPName: 'x-cp20001'),(CPID: 20002; CPName: 'x-Chinese-Eten'),(CPID: 20003; CPName: 'x-cp20003'),(CPID: 20004; CPName: 'x-cp20004'),(CPID: 20005; CPName: 'x-cp20005'),(CPID: 20105; CPName: 'x-IA5'),(CPID: 20106; CPName: 'x-IA5-German'),(CPID: 20107; CPName: 'x-IA5-Swedish'),(CPID: 20108; CPName: 'x-IA5-Norwegian'),(CPID: 20127; CPName: 'us-ascii'),(CPID: 20261; CPName: 'x-cp20261'),(CPID: 20269; CPName: 'x-cp20269'),(CPID: 20273; CPName: 'IBM273'),(CPID: 20277; CPName: 'IBM277'),(CPID: 20278; CPName: 'IBM278'),(CPID: 20280; CPName: 'IBM280'),(CPID: 20284; CPName: 'IBM284'),(CPID: 20285; CPName: 'IBM285'),(CPID: 20290; CPName: 'IBM290'),(CPID: 20297; CPName: 'IBM297'),(CPID: 20420; CPName: 'IBM420'),(CPID: 20423; CPName: 'IBM423'),(CPID: 20424; CPName: 'IBM424'),(CPID: 20833; CPName: 'x-EBCDIC-KoreanExtended'),(CPID: 20838; CPName: 'IBM-Thai'),(CPID: 20866; CPName: 'koi8-r'),(CPID: 20871; CPName: 'IBM871'),(CPID: 20880; CPName: 'IBM880'),(CPID: 20905; CPName: 'IBM905'),(CPID: 20924; CPName: 'IBM00924'),(CPID: 20932; CPName: 'EUC-JP'),(CPID: 20936; CPName: 'x-cp20936'),(CPID: 20949; CPName: 'x-cp20949'),(CPID: 21025; CPName: 'cp1025'),(CPID: 21866; CPName: 'koi8-u'),(CPID: 28591; CPName: 'iso-8859-1'),(CPID: 28592; CPName: 'iso-8859-2'),(CPID: 28593; CPName: 'iso-8859-3'),(CPID: 28594; CPName: 'iso-8859-4'),(CPID: 28595; CPName: 'iso-8859-5'),(CPID: 28596; CPName: 'iso-8859-6'),(CPID: 28597; CPName: 'iso-8859-7'),(CPID: 28598; CPName: 'iso-8859-8'),(CPID: 28599; CPName: 'iso-8859-9'),(CPID: 28603; CPName: 'iso-8859-13'),(CPID: 28605; CPName: 'iso-8859-15'),(CPID: 29001; CPName: 'x-Europa'),(CPID: 38598; CPName: 'iso-8859-8-i'),(CPID: 50220; CPName: 'iso-2022-jp'),(CPID: 50221; CPName: 'csISO2022JP'),(CPID: 50222; CPName: 'iso-2022-jp'),(CPID: 50225; CPName: 'iso-2022-kr'),(CPID: 50227; CPName: 'x-cp50227'),(CPID: 51932; CPName: 'euc-jp'),(CPID: 51936; CPName: 'EUC-CN'),(CPID: 51949; CPName: 'euc-kr'),(CPID: 52936; CPName: 'hz-gb-2312'),(CPID: 54936; CPName: 'GB18030'),(CPID: 57002; CPName: 'x-iscii-de'),(CPID: 57003; CPName: 'x-iscii-be'),(CPID: 57004; CPName: 'x-iscii-ta'),(CPID: 57005; CPName: 'x-iscii-te'),(CPID: 57006; CPName: 'x-iscii-as'),(CPID: 57007; CPName: 'x-iscii-or'),(CPID: 57008; CPName: 'x-iscii-ka'),(CPID: 57009; CPName: 'x-iscii-ma'),(CPID: 57010; CPName: 'x-iscii-gu'),(CPID: 57011; CPName: 'x-iscii-pa'),(CPID: 65000; CPName: 'utf-7'),(CPID: 65001; CPName: 'utf-8') ); implementation function GetEncoding(CPID: Integer): String; var I: Integer; begin Result := 'iso-8859-2'; //put the default encoding here for I := 0 to MaxEncodings - 1 do if Encodings[I].CPID = CPID then begin Result := Encodings[I].CPName; break; end; end; 感谢大家的答案,但事实证明这是唯一可用的解决方案…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |