如何判断可见字符 Unicode

xiedewei 2011-06-22 11:33:10
一个Unicode字符串,如何判断其中都是可见字符?
...全文
339 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainychan2009 2011-07-03
  • 打赏
  • 举报
回复
Mark
yjytiantang 2011-07-03
  • 打赏
  • 举报
回复
关注~~
iqyely 2011-07-03
  • 打赏
  • 举报
回复
来学习下了
lyhoo163 2011-07-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kiboisme 的回复:]
Delphi(Pascal) code


//根据国标 GB2312 的中文汉字及符号 区位码的范围判断
Function CheckIsGB2312(Char : WideChar) : Boolean;
var
S : AnsiString;
begin
S := Char;
Result := (PByte(integer(S)+1)^>=$A1) and (……
[/Quote]

帮顶。
babydog01 2011-06-23
  • 打赏
  • 举报
回复
二楼讲得很详细了,我们也学习了。
蓝色光芒 2011-06-23
  • 打赏
  • 举报
回复

//根据国标 GB2312 的中文汉字及符号 区位码的范围判断
Function CheckIsGB2312(Char : WideChar) : Boolean;
var
S : AnsiString;
begin
S := Char;
Result := (PByte(integer(S)+1)^>=$A1) and (PByte(integer(S)+1)^<=$FE) and
(PByte(S)^>=$B0) and (PByte(S)^<=$F7);
end;

//检查是否都是可见英文字符或者汉字及符号,全部是返回True否则False,空格认为可见
Function StrIsCanShow(Const WS : WideString) : Boolean;
var
i : integer;
P : PWideChar;
begin
Result := True;
P := Pointer(WS);
for i:=1 to Length(WS) do begin
if not (
((PWord(P)^>=$20) and (PWord(P)^<=$7E)) //Ansi 可见字符
or CheckIsGB2312(P^) //GB2312汉字及符号
) then begin
Result := False;
Break;
end;
Inc(P);
end;
end;

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧