• delphi 汉字的编码 转换


    delphi 汉字的编码 转换  

    2009-10-07 21:57:00|  分类: delphi |  标签: |字号 订阅

     
     

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    var

    Str:String;

    begin

    Str:='张';

    Caption:=IntToHex(PWord(@Str[1])^,4);

    end;

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    这样也行

    a:='我';

    caption:=IntToStr(ord(a[1]))+IntToStr(ord(a[2]));

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    Caption:=IntToHex(PWord(@Str[1])^,4);

       得到的是16进制的代码

    caption:=IntToStr(ord(a[1]))+IntToStr(ord(a[2]));

    得到的是10进制的代码!

    不过好像应该是IntToStr(ord(a[2]))+IntToStr(ord(a[1])); 换一下位置!

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    汉字就是unicode,delphi里面有widestring类型,可以立即使用

    var

    s: widestring;

    i: integer;

    begin

    s := 'I am 中国人';

    for i := 1 to length(s) do

        showmessage(inttostr(ord(s[i])));

    end;

    标准的写法,韩文,日文都可以这样处理。

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    要比较汉字, 你只要将这两个字节一一对比, 两个字节都相同,当然是一个汉字了。

    一个汉字由两个字节组成,要判断连续的两个字节是否汉字,

    关键是看其第一个字节是否满足 >=$a0 条件, 这个条件对GBK汉字都适用

    而如果一个汉字是GB2312中定义的最常用的6763个汉字,

    则第一个字节和第二个节字都必须满足>=$a0 条件的条件

    showmessage(chr($CB)+chr($CE)); //显示 宋 字

    宋字的区位码是: 4346

    宋字的国标码是: CBCE    (16进制)

    另外来几个

    showmessage(chr($B5)+chr($CB)); //显示 邓 字

    showmessage(chr($D0)+chr($A1)); //显示 小 字

    showmessage(chr($C6)+chr($BD)); //显示 平 字

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    to tosleep:

    uses widechar(ord(s[i]))

    simple example:

    var

    c1: widechar;

    c2: widechar;

    i: integer;

    s: widestring;

    begin

    s := '汉';

    c1 := s[1];

    i := ord(c1);

    c2 := widechar(i);

    showmessage(c2);

    end;

    奇怪上面个别人的发言,windows和delphi都已经有了对unicode的支持,为什么不用呢?

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    【delphi类型转换 asc与char】

    ord(char) = asc

    chr(asc) = char

    inttohex(int,1) = hex (string)

    使用AStr[i]取AStr:String中的第i个字符时需要注意的事项:

    这里i表示第i个字符,并不是通常的0表示第1个,i表示第i+1个。

  • 相关阅读:
    vmware和主机通信方法
    曾经的读书计划
    Linux下的autoconf和automake
    Nor Flash读写方法
    Linux下的动态库和静态库
    asp.net读取Xml文件到DataSet,以及DataSet保存为Xml,利用自带的强大功能
    SqlServer 2000/2005 列转行 行转列收集
    GridView 模板列 在后台获取该行某控件的值 例如批量修改
    C# DllImport的用法 调用Window的一些常用功能
    C#通用数据库操作类 支持Access/MSSql/Orale/MySql等数据库
  • 原文地址:https://www.cnblogs.com/hcwp/p/3629354.html
Copyright © 2020-2023  润新知