zoukankan      html  css  js  c++  java
  • Delphi 中big5 转 Unicode 函数

    function Big5ToUnicode(str  Char): widestring;
    
    var
    
      len: integer;
    
    begin
    
      len:=MultiByteToWideChar(950,0,PChar(str),-1,nil,0);
    
      setlength(result,len-1);
    
      MultiByteToWideChar(950, 0, PChar(str), -1, pwidechar(result), len+1);
    
      result:=' '+result;
    
    end;

    MultiByteToWideChar(950, 0, PChar(str), -1, pwidechar(result), len+1) 各个参数含义:

    950:码表,950即Big5和Unicode的对应表;
    0:这一位写0就可以了;
    PChar(str):字符串的地址(这里又用PChar强行转换了一次,应该没必要);
    -1:字符串长度,如果是-1就会自动计算长度并转换到字符串结束;
    pwidechar(result):保存结果的地址;
    len+1:缓冲区大小,如果为零函数就返回需要的缓冲区大小。

    在Big5ToUnicode函数中MultiByteToWideChar使用了两次,第一次是计算所需缓冲区大小,第二次才是正式的转换。结果的长度设成多少需要实验一下,因为结尾或许有不想要的字符。但是不能不设或设成0,这样result并没有获得地址分配,转换会出错。

    如果是GB2312,码表号是936。大部分的转码软件都是使用了这个API,GB2312与Big5的互相转换也是通过Unicode进行的。

  • 相关阅读:
    intel cpu 架构
    nginx-nagios-pnp4nagios-nrpe安装配置过程
    iostat 命令detail
    nagios环境
    编译安装PHP 5.3.13
    nagios支持PNP图形显示
    nagios配置安装
    在xp下禁用media sense
    linux awk常用命令【转载】
    sed命令解析[转载]
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3884972.html
Copyright © 2011-2022 走看看