一.目的
输入的字混合简繁体要统一输出的字体,或者全繁体转换成简体,或全简体转换成繁体。
二.程序方法
NO | 函数 | 作用 |
1 | GBCht2Chs | GBK繁体转简体 |
2 | GBChs2Cht | GBK简体转繁体 |
Function GBCht2Chs(GBStr: String): AnsiString;{GBK繁体转简体}
var
len: Integer;
pGBCHTChar: PChar;
pGBCHSChar: PChar;
begin
pGBCHTChar := PChar(GBStr);
Len := MultiByteToWideChar(936, 0, pGBCHTChar, -1, nil, 0);
GetMem(pGBCHSChar, Len * 2 + 1);
ZeroMemory(pGBCHSChar, Len * 2 + 1);
//GB CHT->GB CHS
LCMapString($804, LCMAP_SIMPLIFIED_CHINESE, pGBCHTChar, -1, pGBCHSChar, Len * 2);
Result := String(pGBCHSChar);
//FreeMem(pGBCHTChar);
FreeMem(pGBCHSChar);
end;
Function GBChs2Cht(GBStr: String): AnsiString;{GBK简体转繁体}
var
len: Integer;
pGBCHTChar: PChar;
pGBCHSChar: PChar;
begin
pGBCHSChar := PChar(GBStr);
Len := MultiByteToWideChar(936, 0, pGBCHSChar, -1, nil, 0);
GetMem(pGBCHTChar, Len * 2 + 1);
ZeroMemory(pGBCHTChar, Len * 2 + 1);
//GB CHS->GB CHT
LCMapString($804, LCMAP_TRADITIONAL_CHINESE, pGBCHSChar, -1, pGBCHTChar, Len * 2);
Result := String(pGBCHTChar);
//FreeMem(pGBCHTChar);
FreeMem(pGBCHTChar);
end;