是的,我们正在谈论 ASCII 代码。抱歉,我不是这里的 Delphi 开发人员。

有帮助吗?

解决方案

对于Delphi 7,我将获得免费的Unicode库Mike Lischke 是Virtual Treeview的作者。

该库包含许多转换函数以及来自Unicode的转换函数,因此您可以使用在您的应用程序中最有意义的转换函数。

或者您可以升级到Delphi 2009 具有内置编码例程,以及自己的转换函数库。

其他提示

让我们直截了当。字符集(charset)和字符编码是两个相关但不同的概念。字符集是一个抽象的字符列表,其中包含某种整数字符代码。然后是字符编码,它基本上是一种描述字符如何以字节表示的算法。

ASCII 同时充当字符集和编码。它使用7位表示128个字符(94个可打印)。另一方面, Unicode 是一个字符集,表示1,114,112个代码点。有几种编码来表示Unicode字符串,但最值得注意的是UTF-8,UTF-16,UTF-16LE和UTF-32。换句话说,根据编码,可以用不同的方式表示单个Unicode字符。

  

如何在delphi 7中将unicode字符转换为ascii代码?

我认为这个问题可以用两种方式解释。

  1. 我在某些编码中有一个Unicode字符串,只包含ASCII可打印字符。如何将字符串转换为ASCII编码的字节数组?

  2. 我在某些编码中有一个Unicode字符串,其中还包含非ASCII可打印字符,例如中文字符。如何将字符串编码为ASCII编码而不丢失信息,然后将其解码回原始的Unicode字符串?

  3. 如果你的意思是第一个,你可以像在Osman说的那样将Unicode字符串加载到WideString中

    var
      original: WideString;
      s: AnsiString;
    begin
      s := AnsiString(original);
    

    如果您的意思是第二个,则需要一个通用的编码算法,如 Base64 编码。您可以使用David Barton的 DCPBase64.pas /www.cityinthesky.co.uk/cryptography.html“rel =”nofollow noreferrer“> DCPcrypt v2 Beta 3 。

这取决于您对转换的定义。如果要将127个最低字符映射到Unicode等效字符,可以使用显式强制转换。但如果字符串包含更高的字符,则会产生垃圾。

如果你想要像<!>#235这样的映射; - GT <!>; e和<!>#251; - GT <!>;你,你可以编写自己的代码。但请注意,总有一些字符无法转换。

<!>

QUOT; <!> ASCII QUOT;是字符到数字的特定映射的名称,但有些人说<!>“ASCII代码<!>”;当他们根本不是指ASCII时;他们只想要一个字符的数值,无论当时有效的映射。这种描述是否适用于您?

如果是这样,那么您可以使用Ord标准函数来获取您拥有的任何Unicode字符的Unicode代码点值。

var
  wc: WideChar;
  ws: WideString;
  x: Word;

x := Ord(wc);
x := Ord(ws[1]);

如果你真的是指ASCII,那么你必须更具体地考虑你想要的转换类型。

例如,字母A在unicode中表示为U + 0041,在ansi中表示为41。因此,转换它将非常简单,但您必须找出unicode字符的编码方式。最常见的是UTF-16和UTF-8。 UTF 16,基本上是每个字符两个字节,但即使这样也过于简单化,因为字符可能有更多的字节。 UTF-8听起来好像它意味着每个字符1个字节,但可以是2或3.更复杂的是,UTF-16可以是小端或大端。 (U + 0041或U + 4100)。

你的问题没有意义,如果你想在英语语言环境中将阿拉伯语字母a + U + 0639转换为ansi。你不能。

请参阅有关从 Unicode 转换为 ASCII 的相关问题:

一般来说,数十万个条目的字符集无法转换为 127 个条目的字符集,而不丢失一些信息或编码方案。

您可以在 http://swissdelphicenter.ch/en/showcode中使用此功能.php?id = 1692
它使用指定的代码页将Unicode字符串转换为Ansi字符串。
如果您想使用默认系统代码页进行转换(在区域选项中定义为非unicode代码页),您可以像下面这样执行:

var
  ws: widestring;
  s: string;
begin
  s:=string(ws)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top