Delphi2010中如何显示Unicode扩展汉字?

ShowMessage(#$28408);//显示正确‘𨐈’AiUniCode:=#$28408;ShowMessage(WideChar(AiUniCo... ShowMessage(#$28408);//显示正确‘𨐈’

AiUniCode:=#$28408;
ShowMessage(WideChar(AiUniCode));//错误显示为'萈'

自己分析:因为WideChar取值范围【#$0..#$FFFF】
而Unicode 扩展汉字编码超出了这个范围。
请问专家,有什么方法解决这个赋值出错的问题?

不好意思,因为我最近提出的问题总是没有回答,所以,现在没有财富赠送了!
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)+提问者悬赏5(财富值+成长值)
景茹炜L8
推荐于2016-05-17 · TA获得超过481个赞
知道小有建树答主
回答量:617
采纳率:0%
帮助的人:380万
展开全部
你这样处理一下试试:

s1:String

......

s1:=#$28408;
ShowMessage(s1);
追问
这样肯定是对的。
关键数值是变量,是程序运算得到的,不能够直接赋值。
比如
UniCode:integer;
...
UNICODE:=GetHanziUniCode(‘𨐈’);//比如返回值是$28408;
那么如何通过形参UniCode变成s:=‘𨐈’?
追答
var
s1:String;
i:Integer;
uc1:UCS4Char;
us1:UCS4String;
begin
//把你获得的Unicode内码直接赋给i
i:=$28408;
uc1:=UCS4char(i);
setLength(us1,2);
us1[0]:=uc1;
s1:=UCS4StringToWideString(us1);
us1:=nil;
ShowMessage(s1);
end;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式