|
@@ -0,0 +1,79 @@
|
|
|
+type
|
|
|
+ integer = longint;
|
|
|
+
|
|
|
+const
|
|
|
+ {** @abstract(Character encoding value: UTF-8 storage format)}
|
|
|
+ CHAR_ENCODING_UTF8 = 0;
|
|
|
+ {** @abstract(Character encoding value: unknown format)}
|
|
|
+ CHAR_ENCODING_UNKNOWN = -1;
|
|
|
+ {** @abstract(Character encoding value: UTF-32 Big endian)}
|
|
|
+ CHAR_ENCODING_UTF32BE = 1;
|
|
|
+ {** @abstract(Character encoding value: UTF-32 Little endian)}
|
|
|
+ CHAR_ENCODING_UTF32LE = 2;
|
|
|
+ {** @abstract(Character encoding value: UTF-16 Little endian)}
|
|
|
+ CHAR_ENCODING_UTF16LE = 3;
|
|
|
+ {** @abstract(Character encoding value: UTF-16 Big endian)}
|
|
|
+ CHAR_ENCODING_UTF16BE = 4;
|
|
|
+ {** @abstract(Character encoding value: One byte per character storage
|
|
|
+format)}
|
|
|
+ CHAR_ENCODING_BYTE = 5;
|
|
|
+ {** @abstract(Character encoding value: UTF-16 unknown endian
|
|
|
+(determined by BOM))}
|
|
|
+ CHAR_ENCODING_UTF16 = 6;
|
|
|
+ {** @abstract(Character encoding value: UTF-32 unknown endian
|
|
|
+(determined by BOM))}
|
|
|
+ CHAR_ENCODING_UTF32 = 7;
|
|
|
+
|
|
|
+
|
|
|
+function GetCharEncoding(alias: string; var _name: string): integer;
|
|
|
+var
|
|
|
+ encoding: integer;
|
|
|
+ newencoding: integer;
|
|
|
+begin
|
|
|
+ _name:='';
|
|
|
+ if length(alias) = 0 then
|
|
|
+ Runerror(255); { FAILED! }
|
|
|
+ newencoding:=CHAR_ENCODING_UTF8;
|
|
|
+ encoding:=CHAR_ENCODING_BYTE;
|
|
|
+ case newencoding of
|
|
|
+ { currently unsupported }
|
|
|
+ CHAR_ENCODING_UNKNOWN:
|
|
|
+ Begin
|
|
|
+ end;
|
|
|
+ { verify if we are using the correct encoding }
|
|
|
+ CHAR_ENCODING_UTF16:
|
|
|
+ begin
|
|
|
+ if (encoding <> CHAR_ENCODING_UTF16BE) and
|
|
|
+ (encoding <> CHAR_ENCODING_UTF16LE) then
|
|
|
+ encoding:=255;
|
|
|
+ end;
|
|
|
+ { verify if we are using the correct encoding }
|
|
|
+ CHAR_ENCODING_UTF32:
|
|
|
+ begin
|
|
|
+ if (encoding <> CHAR_ENCODING_UTF32BE) and
|
|
|
+ (encoding <> CHAR_ENCODING_UTF32LE) then
|
|
|
+ encoding:=255;
|
|
|
+ end;
|
|
|
+ CHAR_ENCODING_UTF16BE,
|
|
|
+ CHAR_ENCODING_UTF16LE,
|
|
|
+ CHAR_ENCODING_UTF32LE,
|
|
|
+ CHAR_ENCODING_UTF32BE:
|
|
|
+ begin
|
|
|
+ end;
|
|
|
+ else
|
|
|
+ begin
|
|
|
+ encoding:=newencoding;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+ if encoding <> CHAR_ENCODING_UTF8 then
|
|
|
+ RunError(255);
|
|
|
+end;
|
|
|
+
|
|
|
+
|
|
|
+var
|
|
|
+ _encoding: string;
|
|
|
+Begin
|
|
|
+ _encoding:='UTF-8';
|
|
|
+ GetCharencoding(_encoding,_encoding);
|
|
|
+end.
|
|
|
+
|