当前位置: 首页 > news >正文

B2C营销型网站策划百度技术培训中心

B2C营销型网站策划,百度技术培训中心,湛江网站建设推广,中国建设银行官方招聘网站CVCode使用码表对照的方式实现简繁转换,在Unicode盛行的今天仍然是有其现实意义的。 较常见的应用是,企业内有台籍员工,也有大陆员工,而且简体和繁体的OS都有使用,这样在MIS系统中如何保证GB2312、GBK、BIG5都能够正常…

CVCode使用码表对照的方式实现简繁转换,在Unicode盛行的今天仍然是有其现实意义的。
  较常见的应用是,企业内有台籍员工,也有大陆员工,而且简体和繁体的OS都有使用,这样在MIS系统中如何保证GB2312、GBK、BIG5都能够正常
  CVCode使用码表对照的方式实现简繁转换,在Unicode盛行的今天仍然是有其现实意义的。
  较常见的应用是,企业内有台籍员工,也有大陆员工,而且简体和繁体的OS都有使用,这样在MIS系统中如何保证GB2312、GBK、BIG5都能够正常使用,而且BIG5输入的资料在GBK的系统上要显示正常,并且能与GB2312中输入的字符相匹配(查询中,按名称查询是最常见的)。
  针对这样的应用,CVCode就提供码表对照的方式,理论上讲,只要定义好码表,就可以真正的让BIG5与GB2312“互通”


  但是在CVCode中,只是GB2312与BIG5转换,在GBK输入法流行的今天,GB2312显然不够了。而且BIG5字符集要远远大于GB2312,所以扩展CVCode使其具有GBK与BIG5转换功能势在必行。

  GBK的字符范围如下:


GBK字符集范围
分区                      高位     低位<
----------------------------------------------
●GBK/1:GB2312非汉字符号: A1~A9 || A1~FE
●GBK/2:GB2312汉字      : B0~F7 || A1~FE
●GBK/3:扩充汉字        : 81~A0 || 40~FE
●GBK/4:扩充汉字        : AA~FE || 40~A0
●GBK/5:扩充非汉字      : A8~A9 || 40~A0
其中1和2就是对应的GB2312字符集。


  如何让CVcode支持GBK,有3个问题:

    1.判断是否GB码
    2.计算字符顺序
    3.与原有码表兼容


第一个问题就要修改IsGB如下:


function isGB(value: string): Boolean;
Var
  mHigh, mLow : integer;
begin
  if (length(value)>=2) then
  begin
    mHigh := ord(value[1]);
    mLow := ord(value[2]);
    Result := False;
    //●GBK/1:GB2312非汉字符号: A1~A9 || A1~FE
    if (mHigh in [$A1..$A9]) and (mLow in [$A1..$FE]) then Result := True;
    //●GBK/2:GB2312汉字      : B0~F7 || A1~FE
    if (mHigh in [$B0..$F7]) and (mLow in [$A1..$FE]) then Result := True;
    //●GBK/3:扩充汉字        : 81~A0 || 40~FE
    if (mHigh in [$81..$A0]) and (mLow in [$40..$FE]) then Result := True;
    //●GBK/4:扩充汉字        : AA~FE || 40~A0
    if (mHigh in [$AA..$FE]) and (mLow in [$40..$A0]) then Result := True;
    //●GBK/5:扩充非汉字      : A8~A9 || 40~A0
    if (mHigh in [$A8..$A9]) and (mLow in [$40..$A0]) then Result := True;
  end
  else
    Result := true;
{  //这是原来的,只以GB2312为判断依据
  if (length(value)>=2) then
  begin
    if (value[1] <= #161) and (value[1] >= #247) then
      Result := false
    else
      if (value[2] <= #161) and (value[2] >= #254) then
        Result := false
      else
        Result := true
  end
  else
    Result := true;
    }
end;

第二个要计算顺序和与原有码表兼容---其实兼容主要也在顺序:

function GBOffset(value: string): integer;
Var
  mHigh, mLow : integer;
  mGBK1, mGBK2, mGBK3, mGBK4, mGBK5: integer;
begin
{ //这是原来的---
  if length(value) >= 2 then
    Result := (Ord(value[1]) - $A1) * $5E + (Ord(value[2]) - $A1)
  else
    Result := -1;
}
  Result := -1;
  if length(value) >= 2 then
  begin
    mHigh := ord(value[1]);
    mLow := ord(value[2]);
    //每个区都有多少个汉字?
    //mGBK1 := ($A9 - $A1 + 1) * ($FE - $A1 + 1);  // = 846 = $34E
    //mGBK2 := ($F7 - $B0 + 1) * ($FE - $A1 + 1);  // = 6768 = $1A70
    //mGBK3 := ($A0 - $81 + 1) * ($FE - $40 + 1);
    //mGBK4 := ($FE - $AA + 1) * ($A0 - $40 + 1);
    //mGBK5 := ($A9 - $A8 + 1) * ($A0 - $40 + 1);
    mGBK1 := $34E;  //846
    mGBK1 := mGBK1 + ($B0 - $A9-1) * ($FE - $A1 + 1);   //这个是为了和以前的码表兼容
    mGBK2 := $1A70;  //6768
    mGBK3 := $17E0;  //6112
    mGBK4 := $2035;  //8245
    mGBK5 := $C2;  //194
    //●GBK/1:GB2312非汉字符号: A1~A9 || A1~FE
    if (mHigh in [$A1..$A9]) and (mLow in [$A1..$FE]) then
      Result := (mHigh - $A1) * ($FE - $A1 + 1) + (mLow - $A1)
    //●GBK/2:GB2312汉字      : B0~F7 || A1~FE
    else if (mHigh in [$B0..$F7]) and (mLow in [$A1..$FE]) then
      Result := mGBK1 +
                (mHigh - $B0) * ($FE - $A1 + 1) + (mLow - $A1)
    //●GBK/3:扩充汉字        : 81~A0 || 40~FE
    else if (mHigh in [$81..$A0]) and (mLow in [$40..$FE]) then
      Result := mGBK1 + mGBK2 +
                (mHigh - $81) * ($FE - $40 + 1) + (mLow - $40)
    //●GBK/4:扩充汉字        : AA~FE || 40~A0
    else if (mHigh in [$AA..$FE]) and (mLow in [$40..$A0]) then
      Result := mGBK1 + mGBK2 + mGBK3 +
                (mHigh - $AA) * ($A0 - $40 + 1) + (mLow - $40)
    //●GBK/5:扩充非汉字      : A8~A9 || 40~A0
    else if (mHigh in [$A8..$A9]) and (mLow in [$40..$A0]) then
      Result := mGBK1 + mGBK2 + mGBK3 + mGBK4 +
                (mHigh - $A8) * ($A0 - $40 + 1) + (mLow - $40);
  end
end;

转载于:https://www.cnblogs.com/MaxWoods/archive/2010/11/08/1871944.html

http://www.lbrq.cn/news/2378251.html

相关文章:

  • 华为荣耀商城官网旗舰店杭州seo排名收费
  • 软件开发中宝鸡seo
  • 医疗室内设计网站推荐陕西seo
  • b2b网站建设方案推广代理平台
  • 北京商城网站开发公司百度竞价推广开户联系方式
  • 自己建设房源网站点石关键词排名优化软件
  • 大安网站建设南昌做seo的公司有哪些
  • 自做网站域名重定向企业推广软文范文
  • 仪征 网站建设小璇seo优化网站
  • 小米路由hd 做网站营销战略有哪些内容
  • 网站建设商业阶段网店推广的作用是什么
  • 宝坻区建设路小学网站东莞网
  • 邢台做网站多少钱关键词优化公司网站
  • 做软测的网站新媒体推广渠道有哪些
  • typecho跟wordpress优化二十条
  • 国外做电商网站有哪些方面如何让百度收录
  • dede网站根目录赣州网站建设公司
  • 乐居房产官方网站百度关键词竞价排名
  • 中国电建市政建设集团有限公司网站seo教程视频
  • 濮阳做网站的价格域名收录查询
  • 做cpa比较做网站吗会员营销
  • 淘宝客优惠券网站怎么做优化设计方法
  • 兴义网站建设网站建设宜昌网站seo
  • 个人网站免费源码石首seo排名
  • 重庆网站服务器建设推荐qq空间秒赞秒评网站推广
  • 做垂直类网站百度关键词推广怎么做
  • 天津网站优化步骤河南网站建设哪家公司好
  • 郑州网站建设搜索优化网站友情链接检测
  • 绥化建设局网站自己的网站怎么推广
  • 电商网站的在线客服怎么做杭州优化公司哪家好
  • 广东省省考备考(第四十九天7.18)——资料分析(知识点回顾与练习)
  • SpringBoot中使用MessageSource的getMessage获取i18n资源文件中的消息
  • Nestjs框架: 基于TypeORM的多租户功能集成
  • Java Set 集合详解:从基础语法到实战应用,彻底掌握去重与唯一性集合
  • redis中间件
  • 杭州卓健信息科技有限公司 Java 面经