⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rvcodepages.pas

📁 richview1.7 full.source
💻 PAS
字号:
unit RVCodePages;

interface
uses SysUtils, Classes,  RVStyle;

procedure GetCodePageValues(Proc: TGetStrProc);
function CodePageToIdent(CodePage: TRVCodePage): String;
function IdentToCodePage(const Ident: string; var CodePage: TRVCodePage): Boolean;

implementation

const CodePageNames: array [0..151] of String =
(
      '0 Default ANSI code page',
      '1 Default OEM code page',
      '037 IBM EBCDIC - U.S./Canada',
      '437 OEM - United States',
      '500 IBM EBCDIC - International',
      '708 Arabic - ASMO 708',
      '709 Arabic - ASMO 449+, BCON V4',
      '710 Arabic - Transparent Arabic',
      '720 Arabic - Transparent ASMO',
      '737 OEM - Greek (formerly 437G)',
      '775 OEM - Baltic',
      '850 OEM - Multilingual Latin I',
      '852 OEM - Latin II',
      '855 OEM - Cyrillic (primarily Russian)',
      '857 OEM - Turkish',
      '858 OEM - Multlingual Latin I + Euro symbol',
      '860 OEM - Portuguese',
      '861 OEM - Icelandic',
      '862 OEM - Hebrew',
      '863 OEM - Canadian-French',
      '864 OEM - Arabic',
      '865 OEM - Nordic',
      '866 OEM - Russian',
      '869 OEM - Modern Greek',
      '870 IBM EBCDIC - Multilingual/ROECE (Latin-2)',
      '874 ANSI/OEM - Thai (same as 28605, ISO 8859-15)',
      '875 IBM EBCDIC - Modern Greek',
      '932 ANSI/OEM - Japanese, Shift-JIS',
      '936 ANSI/OEM - Simplified Chinese (PRC, Singapore)',
      '949 ANSI/OEM - Korean (Unified Hangeul Code)',
      '950 ANSI/OEM - Traditional Chinese (Taiwan; Hong Kong SAR, PRC)',
      '1026 IBM EBCDIC - Turkish (Latin-5)',
      '1047 IBM EBCDIC - Latin 1/Open System',
      '1140 IBM EBCDIC - U.S./Canada (037 + Euro symbol)',
      '1141 IBM EBCDIC - Germany (20273 + Euro symbol)',
      '1142 IBM EBCDIC - Denmark/Norway (20277 + Euro symbol)',
      '1143 IBM EBCDIC - Finland/Sweden (20278 + Euro symbol)',
      '1144 IBM EBCDIC - Italy (20280 + Euro symbol)',
      '1145 IBM EBCDIC - Latin America/Spain (20284 + Euro symbol)',
      '1146 IBM EBCDIC - United Kingdom (20285 + Euro symbol)',
      '1147 IBM EBCDIC - France (20297 + Euro symbol)',
      '1148 IBM EBCDIC - International (500 + Euro symbol)',
      '1149 IBM EBCDIC - Icelandic (20871 + Euro symbol)',
      '1200 Unicode UCS-2 Little-Endian (BMP of ISO 10646)',
      '1201 Unicode UCS-2 Big-Endian',
      '1250 ANSI - Central European',
      '1251 ANSI - Cyrillic',
      '1252 ANSI - Latin I',
      '1253 ANSI - Greek',
      '1254 ANSI - Turkish',
      '1255 ANSI - Hebrew',
      '1256 ANSI - Arabic',
      '1257 ANSI - Baltic',
      '1258 ANSI/OEM - Vietnamese',
      '1361 Korean (Johab)',
      '10000 MAC - Roman',
      '10001 MAC - Japanese',
      '10002 MAC - Traditional Chinese (Big5)',
      '10003 MAC - Korean',
      '10004 MAC - Arabic',
      '10005 MAC - Hebrew',
      '10006 MAC - Greek I',
      '10007 MAC - Cyrillic',
      '10008 MAC - Simplified Chinese (GB 2312)',
      '10010 MAC - Romania',
      '10017 MAC - Ukraine',
      '10021 MAC - Thai',
      '10029 MAC - Latin II',
      '10079 MAC - Icelandic',
      '10081 MAC - Turkish',
      '10082 MAC - Croatia',
      '12000 Unicode UCS-4 Little-Endian',
      '12001 Unicode UCS-4 Big-Endian',
      '20000 CNS - Taiwan',
      '20001 TCA - Taiwan',
      '20002 Eten - Taiwan',
      '20003 IBM5550 - Taiwan',
      '20004 TeleText - Taiwan',
      '20005 Wang - Taiwan',
      '20105 IA5 IRV International Alphabet No. 5 (7-bit)',
      '20106 IA5 German (7-bit)',
      '20107 IA5 Swedish (7-bit)',
      '20108 IA5 Norwegian (7-bit)',
      '20127 US-ASCII (7-bit)',
      '20261 T.61',
      '20269 ISO 6937 Non-Spacing Accent',
      '20273 IBM EBCDIC - Germany',
      '20277 IBM EBCDIC - Denmark/Norway',
      '20278 IBM EBCDIC - Finland/Sweden',
      '20280 IBM EBCDIC - Italy',
      '20284 IBM EBCDIC - Latin America/Spain',
      '20285 IBM EBCDIC - United Kingdom',
      '20290 IBM EBCDIC - Japanese Katakana Extended',
      '20297 IBM EBCDIC - France',
      '20420 IBM EBCDIC - Arabic',
      '20423 IBM EBCDIC - Greek',
      '20424 IBM EBCDIC - Hebrew',
      '20833 IBM EBCDIC - Korean Extended',
      '20838 IBM EBCDIC - Thai',
      '20866 Russian - KOI8-R',
      '20871 IBM EBCDIC - Icelandic',
      '20880 IBM EBCDIC - Cyrillic (Russian)',
      '20905 IBM EBCDIC - Turkish',
      '20924 IBM EBCDIC - Latin-1/Open System (1047 + Euro symbol)',
      '20932 JIS X 0208-1990 & 0121-1990',
      '20936 Simplified Chinese (GB2312)',
      '21025 IBM EBCDIC - Cyrillic (Serbian, Bulgarian)',
      '21027 Extended Alpha Lowercase',
      '21866 Ukrainian (KOI8-U)',
      '28591 ISO 8859-1 Latin I',
      '28592 ISO 8859-2 Central Europe',
      '28593 ISO 8859-3 Latin 3',
      '28594 ISO 8859-4 Baltic',
      '28595 ISO 8859-5 Cyrillic',
      '28596 ISO 8859-6 Arabic',
      '28597 ISO 8859-7 Greek',
      '28598 ISO 8859-8 Hebrew',
      '28599 ISO 8859-9 Latin 5',
      '28605 ISO 8859-15 Latin 9',
      '29001 Europa 3',
      '38598 ISO 8859-8 Hebrew',
      '50220 ISO 2022 Japanese with no halfwidth Katakana',
      '50221 ISO 2022 Japanese with halfwidth Katakana',
      '50222 ISO 2022 Japanese JIS X 0201-1989',
      '50225 ISO 2022 Korean',
      '50227 ISO 2022 Simplified Chinese',
      '50229 ISO 2022 Traditional Chinese',
      '50930 Japanese (Katakana) Extended',
      '50931 US/Canada and Japanese',
      '50933 Korean Extended and Korean',
      '50935 Simplified Chinese Extended and Simplified Chinese',
      '50936 Simplified Chinese',
      '50937 US/Canada and Traditional Chinese',
      '50939 Japanese (Latin) Extended and Japanese',
      '51932 EUC - Japanese',
      '51936 EUC - Simplified Chinese',
      '51949 EUC - Korean',
      '51950 EUC - Traditional Chinese',
      '52936 HZ-GB2312 Simplified Chinese',
      '54936 Windows XP: GB18030 Simplified Chinese (4 Byte)',
      '57002 ISCII Devanagari',
      '57003 ISCII Bengali',
      '57004 ISCII Tamil',
      '57005 ISCII Telugu',
      '57006 ISCII Assamese',
      '57007 ISCII Oriya',
      '57008 ISCII Kannada',
      '57009 ISCII Malayalam',
      '57010 ISCII Gujarati',
      '57011 ISCII Punjabi',
      '65000 Unicode UTF-7',
      '65001 Unicode UTF-8'
);

const CodePageValues: array [0..151] of TRVCodePage =
(
      0,
      1,
      037,
      437,
      500,
      708,
      709,
      710,
      720,
      737,
      775,
      850,
      852,
      855,
      857,
      858,
      860,
      861,
      862,
      863,
      864,
      865,
      866,
      869,
      870,
      874,
      875,
      932,
      936,
      949,
      950,
      1026,
      1047,
      1140,
      1141,
      1142,
      1143,
      1144,
      1145,
      1146,
      1147,
      1148,
      1149,
      1200,
      1201,
      1250,
      1251,
      1252,
      1253,
      1254,
      1255,
      1256,
      1257,
      1258,
      1361,
      10000,
      10001,
      10002,
      10003,
      10004,
      10005,
      10006,
      10007,
      10008,
      10010,
      10017,
      10021,
      10029,
      10079,
      10081,
      10082,
      12000,
      12001,
      20000,
      20001,
      20002,
      20003,
      20004,
      20005,
      20105,
      20106,
      20107,
      20108,
      20127,
      20261,
      20269,
      20273,
      20277,
      20278,
      20280,
      20284,
      20285,
      20290,
      20297,
      20420,
      20423,
      20424,
      20833,
      20838,
      20866,
      20871,
      20880,
      20905,
      20924,
      20932,
      20936,
      21025,
      21027,
      21866,
      28591,
      28592,
      28593,
      28594,
      28595,
      28596,
      28597,
      28598,
      28599,
      28605,
      29001,
      38598,
      50220,
      50221,
      50222,
      50225,
      50227,
      50229,
      50930,
      50931,
      50933,
      50935,
      50936,
      50937,
      50939,
      51932,
      51936,
      51949,
      51950,
      52936,
      54936,
      57002,
      57003,
      57004,
      57005,
      57006,
      57007,
      57008,
      57009,
      57010,
      57011,
      65000,
      65001
);
{------------------------------------------------------------------------------}
procedure GetCodePageValues(Proc: TGetStrProc);
var i: Integer;
begin
  for i := Low(CodePageNames) to High(CodePageNames) do
   Proc(CodePageNames[I]);
end;
{------------------------------------------------------------------------------}
function CodePageToIdent(CodePage: TRVCodePage): String;
var i: Integer;
begin
  for i := Low(CodePageNames) to High(CodePageNames) do
    if CodePageValues[i] = CodePage then begin
       Result := CodePageNames[i];
       exit;
    end;
  FmtStr(Result, '%u', [CodePage]);
end;
{------------------------------------------------------------------------------}
function IdentToCodePage(const Ident: string; var CodePage: TRVCodePage): Boolean;
var i: Integer;
begin
  for i := Low(CodePageNames) to High(CodePageNames) do
    if CodePageNames[i] = Ident then begin
       CodePage := CodePageValues[i];
       Result := True;
       exit;
    end;
  Result := False;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -