mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 17:28:14 +02:00
79 lines
2.3 KiB
ObjectPascal
79 lines
2.3 KiB
ObjectPascal
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.
|