Delphi2010中如何显示Unicode扩展汉字?
ShowMessage(#$28408);//显示正确‘𨐈’AiUniCode:=#$28408;ShowMessage(WideChar(AiUniCo...
ShowMessage(#$28408);//显示正确‘𨐈’
AiUniCode:=#$28408;
ShowMessage(WideChar(AiUniCode));//错误显示为'萈'
自己分析:因为WideChar取值范围【#$0..#$FFFF】
而Unicode 扩展汉字编码超出了这个范围。
请问专家,有什么方法解决这个赋值出错的问题?
不好意思,因为我最近提出的问题总是没有回答,所以,现在没有财富赠送了! 展开
AiUniCode:=#$28408;
ShowMessage(WideChar(AiUniCode));//错误显示为'萈'
自己分析:因为WideChar取值范围【#$0..#$FFFF】
而Unicode 扩展汉字编码超出了这个范围。
请问专家,有什么方法解决这个赋值出错的问题?
不好意思,因为我最近提出的问题总是没有回答,所以,现在没有财富赠送了! 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)+提问者悬赏5(财富值+成长值)
1个回答
展开全部
你这样处理一下试试:
s1:String
......
s1:=#$28408;
ShowMessage(s1);
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;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询