大小写转换不一样

ffwin 2013-08-18 04:58:21
大小写转换不一样?什么原因?

Ts :='圐圙';
LowerCase(TS);
UpperCase(TS);
...全文
143 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
s11ss 2013-08-18
  • 打赏
  • 举报
回复
调试一下LowerCase就知道了。 function LowerCase(const S: string): string; var Ch: Char; L: Integer; Source, Dest: PChar; begin L := Length(S); SetLength(Result, L); Source := Pointer(S); Dest := Pointer(Result); while L <> 0 do begin Ch := Source^; if (Ch >= 'A') and (Ch <= 'Z') then Inc(Ch, 32); Dest^ := Ch; Inc(Source); Inc(Dest); Dec(L); end; end; ShowMessage('圐圙'[4]); 第4个字符是G,调用LowerCase转换后变成g,所以第2个汉字“圙”就变成了“坓”。 解决办法就是2楼所说的,用WideLowerCase和WideUpperCase替换LowerCase和UpperCase。
sololie 2013-08-18
  • 打赏
  • 举报
回复
UpperCae 处理 ansi WideUpperCase 处理unicode
haitao 2013-08-18
  • 打赏
  • 举报
回复
ansi还是unicode/utf8? 估计是当做ascii字符处理了

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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