Delphi2010:编写代码以分配包含Unicode文字值的Caption或从文本
请告诉我如何在Delphi 2010中制作Unicode程序.
我有英文Windows和“非Unicode程序的当前语言”也是英文.静态控件看起来不错,但是如果我尝试更改它们(Label.Caption:=’unicode value’或Memo.LoadFromFile(textFilename)),则文本看起来像:$^ $&%*(#&#. 如何解决? 非常感谢! 解决方法
欢迎来到StackOverflow.当你有这样的问题时,请发贴你的代码.我将会解释最可能的问题来源,就像您看到的那样,但是如果您不发布代码,我无法帮助您解决问题.此外,我必须做出很多假设,因为你已经要求我几乎猜测你的问题,这就是为什么它被关闭.希望未来能给予更多的细节,我们可以避免闭门会议的问题.
让我假设一堆事情,因为你没有给我很多数据继续下去. >你以前使用过Delphi,你知道String,Char等基本类型名称. 这里是右键单击文件格式菜单,您可以随时更改编码,建议的值为UTF8,如下所示: 您应该发布生成不正确字符串值的受影响的代码.你应该开始,而不是一个巨大的应用程序,你试图移植到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,10); Self.Caption := s; end; 使用上面的指针是有创造力的,不必要的,除了我试图用这个例子教导. 第一个例子将在表单的标题中创建unicode汉字,而不是显示文本’test’,因为2个字节已经变成单个字符,因为我有意地做了一些BAD来显示一个简单的方式来产生你所说的噪音的,通过在我的代码中犯错误. 如果您遇到特定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编码的文件来存储你这样写的东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |