要转内码比较简单,使用MultiByteToWideChar先将简体/繁体(GBK/BIG5)转为UniCode,再使用WideCharToMultiByte从Unicode转为繁体/简体(BIG5/GBK).
经过以上步骤,就可以把BIG5码转为GBK码,但是繁体中的字因为在GBK中大部分都有对应(繁体字形),因而,以上得到的是BIG5对应的繁体字形,如BIG5码的“東”($AA46)得到的GBK对应的字为“東”($967C),而不是简体中最常用的“东”($B6AB)。
在中文转码器中,最后一页提供了是否转字形的选项,它可以做到!那我们也应该可以做到!经过调试,原来它是调用LCMapStringW!
在Windows.pas中,定义了三个这样的函数:
其中,LCMapString=LCMapStringA,也就是使用ASCII的,当然我们也可以使用LCMapStringW转UniCode成为简体字形。