gpt4 book ai didi

德尔福2010 : Writing code to assign Caption containing Unicode literal values or load unicode symbols from text file?

转载 作者:行者123 更新时间:2023-12-03 14:38:18 25 4
gpt4 key购买 nike

如何在Delphi 2010中制作Unicode程序?

我有英语 Windows,“非 Unicode 程序的当前语言”也是英语。静态控件看起来不错,但如果我尝试更改它们(Label.Caption := 'unicode value' 或 Memo.LoadFromFile(textFilename) ),文本看起来像: $^$&%*(#&#.

如何解决?

最佳答案

欢迎来到 StackOverflow。当您遇到此类问题时,请发布您的代码。我将解释最有可能的问题根源,例如您所看到的问题,但如果您不发布代码,我无法帮助您解决问题。另外,我必须做出很多假设,因为您要求我猜测有关您问题的几乎所有内容,这就是它被关闭的原因。我希望您将来能提供更多细节,这样我们就可以避免封闭式问题。

让我假设一些事情,因为你没有给我太多的数据来继续。

  1. 您以前使用过 Delphi,并且了解 String、Char 等基本类型名称。

  2. 您可能不知道 Delphi 2007 (char=Ansichar/string=Ansistring) 和 Delphi 2009 或更高版本(包括 Delphi 2010 和 XE)之间的 Unicode 差异,其中 Char=UnicodeChar,String=UnicodeString .

  3. 您看到垃圾的最常见原因(在您的问题中表示为文本看起来像 $^$&%*(#&#.")是如果您尝试过直接操作字节大小的 AnsiCharacter 数据并以错误的方式将其强制转换为 UnicodeString。

  4. MJN 还从您的评论中注意到,您在处理包含未保存为 UTF8 文件的 unicode 字符的源代码时也遇到了问题...当我尝试将 Unicode 字符放入源文件中时Delphi自动问我这个问题,我假设你也看到了,并正确回答(正确答案是肯定的)...但是你的问题根本没有提到这一点,你真的应该尝试更新你的问题以指定来源您的问题。

enter image description here

这里是右键文件格式菜单,您可以随时更改编码,推荐值为 UTF8,如下所示:

enter image description here

您绝对应该发布生成不正确字符串值的受影响代码。您应该从尝试移植到 Unicode Delphi 的巨型应用程序开始(这是我在这里所做的第四个也是最大的假设),而应该从一些小的示例代码开始。

这里有一个“写得不好的代码”的例子,它恰好在 Delphi 7 中仍然有效,因为每个字符的大小都是一个字节,但这种假设不会向上传播到 2009 年和 XE Delphi:

procedure Tform1.TestBad;
var
x:PAnsiChar;
s:String;
begin
x := 'test';
s := Copy(PChar(x),1,10);
Self.Caption := s;
end;

这里是相同的设计示例代码“已修复”(更像是无意破坏的),因此它至少可以在 delphi XE 中工作:

procedure Tform1.TestLessBad;
var
x:PAnsiChar;
s:String;
begin
x := 'test';
s := Copy(x,1,10);
Self.Caption := s;
end;

上面指针的使用是人为的,并且没有必要,除非我试图用这个例子来教学。

第一个示例将在表单标题中创建 unicode 中文字符,而不是显示文本“test”,因为 2 个字节已成为单个字符,因为我故意做了一些不好的事情来向您展示一种生成此文本的简单方法你所说的噪音,是因为我的代码中犯了错误。

如果您在使用特定的 unicode 代码点时遇到问题,我建议您尝试以下表示法:

c := Char($21CC);  // this is U+21CC (cool two arrows thingy used in chemistry to indicate a reversible reaction)

或者你会看到这个,这几乎是同样的事情:

c := #$21CC; // U+21CC

请注意,您如何不需要 UTF8 编码文件来存储您以这种方式编写的内容。

关于德尔福2010 : Writing code to assign Caption containing Unicode literal values or load unicode symbols from text file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6270570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com