中文转码器的工作原理

2016-02-19 12:46 10 1 收藏

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享中文转码器的工作原理吧。

【 tulaoshi.com - 编程语言 】

  最近在做Delphi下的简体与繁体转换, 发现Windows2000自带的工具"中文转码器"很好用, 不仅可以转内码(BIG5--GBK), 还可以将繁体字转为简体字(如:東--东).

  要转内码比较简单, 使用MultiByteToWideChar先将简体/繁体(GBK/BIG5)转为UniCode, 再使用WideCharToMultiByte从Unicode转为繁体/简体(BIG5/GBK).

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)
EX:function Big52GB( ABig5String: string): String;{ BIG5 to GBK : BIG5 == Unicode == GBK }Var  mWString: array[0..1024] of WideChar;  cchWideChar: Integer;  mLongBool: LongBool;begin  Result := ABig5String;//分配空间  mLongBool := True;  //1.先取得需要的长度  cchWideChar := MultiByteToWideChar(950, 0, PChar(ABig5String), length(ABig5String), @mWString, 0);//  SetLength(mWString, cchWideChar+1);  //2.BIG5 to Unicode  MultiByteToWideChar(950, 0, PChar(ABig5String), length(ABig5String), @mWString, cchWideChar);  //3.Unicode to GBK  WideCharToMultiByte(936, 0, @mWString, cchWideChar, PChar(Result), length(Result), '?', @mLongBool);end;

  经过以上步骤, 就可以把BIG5码转为GBK码,但是繁体中的字因为在GBK中大部分都有对应(繁体字形),因而,以上得到的是BIG5对应的繁体字形,如BIG5码的 “東”($AA46)得到的GBK对应的字为“東”($967C),而不是简体中最常用的“东”($B6AB)。

   在中文转码器中,最后一页提供了是否转字形的选项,它可以做到!那我们也应该可以做到!经过调试,原来它是调用LCMapStringW!

  在Windows.pas中,定义了三个这样的函数:

  function LCMapString(Locale: LCID; dwMapFlags: DWORD; lpSrcStr: PChar;
    cchSrc: Integer; lpDestStr: PChar; cchDest: Integer): Integer; stdcall;

  function LCMapStringA(Locale: LCID; dwMapFlags: DWORD; lpSrcStr: PAnsiChar;
    cchSrc: Integer; lpDestStr: PAnsiChar; cchDest: Integer): Integer; stdcall;

  function LCMapStringW(Locale: LCID; dwMapFlags: DWORD; lpSrcStr: PWideChar;
    cchSrc: Integer; lpDestStr: PWideChar; cchDest: Integer): Integer; stdcall;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  其中,LCMapString=LCMapStringA,也就是使用ASCII的,当然我们也可以使用LCMapStringW转UniCode成为简体字形。

来源:http://www.tulaoshi.com/n/20160219/1601889.html

延伸阅读
标签: 电器 生活常识
高压断路器的作用-高压断路器的工作原理 高压断路器的简介 高压断路器(或称高压开关)不仅可以在紧急情况下切断或闭合高压电路中的空载电流和负荷电流,而且当系统发生故障时通过继电器保护装置的作用,切断过负荷电流和短路电流,它具有相当完善的灭弧结构和足够的断流能力,可分为:油断路器(多油断路器、少油断路器)、...
标签: 生活常识
小型断路器的工作原理-小型断路器是什么? 小型断路器的简介 小型断路器(英文名称:MiniatureCircuitBreaker)又称微型断路器(MicroCircuitBreaker),这种断路器适用于交流50/60Hz额定电压230/400V,额定电流至63A线路的过载和短路保护之用,也可以在正常情况下作为线路的不频繁操作转换之用。 小型断路器具有结构先...
调速开关的工作原理 这个调试开关这种说法知道的人肯定不是特别的多,但是说起那个风扇的那个开关大家就应该知道了吧,调速开关就是那个东西,那么这个调速开关的工作原理又是怎么样的呢?今天图老师就大家来看看。 调速开关采用电子电路或微处理芯片去改变电机的级数、电压、电流、频率等方法控制电机的转速,以使电机达到较高的使用性能的...
标签: 生活常识
烟花工作原理 从牡丹到菊花再到大丽花,之所以有如此多的烟花以开花植物命名就是因为它们在绽放时呈现出这些花的图案。烟花壳中装有空中开花需要的一切配料。从地面发射台发射到空中炸开并最终绽放出诱人的颜色和绚丽的图案,在整个过程中,烟花壳的结构必须保持完整。以下19幅图片向我们讲述了烟花的工作原理。     (...
冰箱的省点技巧 冰箱的放置 刚买来的冰箱应该放在没有阳光照射的地方,但有得是通风的地方,和墙要保持一段距离,便于冰箱散热。 检查密封性 要经常检查冰箱封条的密封性,如果封条出现变形,就会影响关闭的严丝合缝程度,造成冷气外泄,从而增加耗电量。假如变形严重,应及时维修更换。 定期除霜 冰箱使用一段时间后,会产生一些...

经验教程

221

收藏

89
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部