Windows2000自帶的工具"中文轉(zhuǎn)碼器"很好用, 不僅可以轉(zhuǎn)內(nèi)碼(BIG5-->GBK), 還可以將繁體字轉(zhuǎn)為簡(jiǎn)體字(如:東-->東).
要轉(zhuǎn)內(nèi)碼比較簡(jiǎn)單, 使用MultiByteToWideChar先將簡(jiǎn)體/繁體(GBK/BIG5)轉(zhuǎn)為UniCode, 再使用WideCharToMultiByte從Unicode轉(zhuǎn)為繁體/簡(jiǎn)體(BIG5/GBK).
經(jīng)過以上步驟, 就可以把BIG5碼轉(zhuǎn)為GBK碼,但是繁體中的字因?yàn)樵贕BK中大部分都有對(duì)應(yīng)(繁體字形),因而,以上得到的是BIG5對(duì)應(yīng)的繁體字形,如BIG5碼的 “東”($AA46)得到的GBK對(duì)應(yīng)的字為“東”($967C),而不是簡(jiǎn)體中最常用的“東”($B6AB)。
在中文轉(zhuǎn)碼器中,最后一頁提供了是否轉(zhuǎn)字形的選項(xiàng),它可以做到!那我們也應(yīng)該可以做到!經(jīng)過調(diào)試,原來它是調(diào)用LCMapStringW!
在Windows.pas中,定義了三個(gè)這樣的函數(shù):
其中, LCMapString=LCMapStringA,也就是使用ASCII的,當(dāng)然我們也可以使用LCMapStringW轉(zhuǎn)UniCode成為簡(jiǎn)體字形。