zoukankan      html  css  js  c++  java
  • Lazarus 中的字符串 String,AnsiString,UnicodeString,UTF8String,WideString

      Lazarus 在字符串处理上默认是UTF8编码

    UTF8String          = type ansistring;

      如下面这段代码

    s:=trim('abcd123');
      lbStrLen1.Caption:=IntToStr(Length(s));   {本身就是UTF8编码}
      lbStrLen2.Caption:=IntToStr(length(Utf8ToAnsi(s)));
      lbStrLen3.Caption:=IntToStr(Length(UTF8Decode(s)));

      将输出 7 ,7 ,7

    还是那段代码

    s:=trim('附件123');
      lbStrLen1.Caption:=IntToStr(Length(s));   {本身就是UTF8编码}
      lbStrLen2.Caption:=IntToStr(length(Utf8ToAnsi(s)));
      lbStrLen3.Caption:=IntToStr(Length(UTF8Decode(s)));

      结果是 9,7,5

    UTF8Decode(s) 解码是 UnicodeString。

    话说到这里那可不可以用强制呢!说不定编译器很智能。

    s:='复件123';
      Memo3.Append(format('with %20s to %20s  :  len=%d',['AnsiString(s)',s,length(s)]));
      Memo3.Append(format('with %20s to %20s  :  len=%d',['UnicodeString(s)',UnicodeString(s),length(UnicodeString(s))]));
      Memo3.Append(format('with %20s to %20s  :  len=%d',['WideString(s)',WideString(s),length(WideString(s))]));
      Memo3.Append(format('with %20s to %20s  :  len=%d',['UTF8String(s)',UTF8String(s),length(UTF8String(s))]));
      Memo3.Append(format('with %20s to %20s  :  len=%d',['UTF8Decode(s)',UTF8Decode(s),length(UTF8Decode(s))]));
      Memo3.Append(format('with %20s to %20s  :  len=%d',['Utf8ToAnsi(s)',Utf8ToAnsi(s),length(Utf8ToAnsi(s))]));

    结果是

    with        AnsiString(s) to            复件123  :  len=9
    with     UnicodeString(s) to            复件123  :  len=6
    with        WideString(s) to            复件123  :  len=6
    with        UTF8String(s) to            复件123  :  len=9
    with        UTF8Decode(s) to              ??123  :  len=5
    with        Utf8ToAnsi(s) to              ??123  :  len=7

    强制后长度等于6 ,不明白啊!

  • 相关阅读:
    Struts2 参数传递总结
    简单的 MySQL 用户管理
    一道好题
    javascript 常用代码大全(2) 简单飞扬
    读取word和pdf文件的几种方法 简单飞扬
    模拟身份证号码JS源代码 简单飞扬
    兵法感悟 简单飞扬
    跨应用Session共享 简单飞扬
    放假前必须做的事情 简单飞扬
    javascript 常用代码大全(4) 简单飞扬
  • 原文地址:https://www.cnblogs.com/hieroly/p/2790690.html
Copyright © 2011-2022 走看看