Delphi 如何将字符串或字符转换为unicode表示形式并返回?

Delphi 如何将字符串或字符转换为unicode表示形式并返回?,delphi,unicode,delphi-xe,Delphi,Unicode,Delphi Xe,我正在学习更多关于Unicode的知识。请演示如何将代码点值转换为字符串,反之亦然 例如:如何将U+0037转换为其字符或字符串表示形式,即7 还请说明如何为ascii执行此操作。例如:将转换为其字符或字符串表示形式,即空格。Delphi字符串已使用Unicode(UTF16)编码,因此无需将Delphi字符串“转换”为Unicode。下面是一个如何将nbsp(U+00A0)和“7”(U+0037)的Unicode表示直接插入delphi字符串的示例: procedure TForm1.Butt

我正在学习更多关于Unicode的知识。请演示如何将代码点值转换为字符串,反之亦然

例如:如何将
U+0037
转换为其字符或字符串表示形式,即
7


还请说明如何为ascii执行此操作。例如:将
转换为其字符或字符串表示形式,即空格。

Delphi字符串已使用Unicode(UTF16)编码,因此无需将Delphi字符串“转换”为Unicode。下面是一个如何将nbsp(U+00A0)和“7”(U+0037)的Unicode表示直接插入delphi字符串的示例:

procedure TForm1.Button1Click(Sender: TObject);
const
  U_nbsp = $00A0;
  U_7 = $0037;

var
  S: string;

begin
  S:= 'abcd' + Char(U_nbsp) + Char(U_7);
  ShowMessage(S);
end;

Delphi字符串已经使用Unicode(UTF16)编码,因此不需要将Delphi字符串“转换”为Unicode。下面是一个如何将nbsp(U+00A0)和“7”(U+0037)的Unicode表示直接插入delphi字符串的示例:

procedure TForm1.Button1Click(Sender: TObject);
const
  U_nbsp = $00A0;
  U_7 = $0037;

var
  S: string;

begin
  S:= 'abcd' + Char(U_nbsp) + Char(U_7);
  ShowMessage(S);
end;

解析字符串,然后使用
chr()
获取字符非常简单。这对于BMP中的代码点来说是很好的。HTML实体完全是另一回事。它是否像s:=chr(“”)或s:=chr('U+0037');?首先,你必须阅读
chr()
的文档。然后从
'U+0037'
中解析代码点或数据。而html实体则完全不同。找一个数据库。是的,我觉得我需要一些数据库,但我想德尔福会有一个。我想我必须在线搜索Unicode表并对其进行解析。解析字符串然后使用
chr()
获取字符非常简单。这对于BMP中的代码点来说是很好的。HTML实体完全是另一回事。它是否像s:=chr(“”)或s:=chr('U+0037');?首先,你必须阅读
chr()
的文档。然后从
'U+0037'
中解析代码点或数据。而html实体则完全不同。找一个数据库。是的,我觉得我需要一些数据库,但我想德尔福会有一个。嗯,我想我必须在线搜索Unicode表并对其进行解析。先生,我看到了const的用法,但是如果您不知道要解码的项目怎么办?@megatr0n将
const
替换为
var
?@megatr0n如果您有U+0000格式的Unicode跳转码,您可以对其进行十六进制数字解析,然后使用
stroint()
函数将其转换为整数。@但威震天并不能解决相关问题,因为它不是Unicode跳转码表示法。@DavidHeffernan:Chr实际上是一个强制转换。它不会产生任何代码(除了通常的字节到字的扩展,演员组也会产生代码)。先生,我看到了const的用法,但是如果您不知道要解码的项目怎么办?@megatr0n将
const
替换为
var
?@megatr0n如果您有U+0000格式的Unicode跳转码,您可以将其解析为十六进制数字,然后使用
stroint()
函数将其转换为整数。@megatron但是它并不能解决相关问题,因为它不是Unicode跳线表示法。@DavidHeffernan:Chr实际上是一个强制转换。它不产生任何代码(除了通常的字节到字扩展,cast也会产生这种扩展),AFAICT。