unit ChineseCharactersConvert;
interface
uses
Classes, Windows;
type
TGBBIG5Convert = class(TObject)
public
class function BIG5ToGB(BIG5Str : String): AnsiString;
class function GBToBIG5(GBStr : String): AnsiString;
class function GBChs2Cht(GBStr: String): AnsiString;
class function GBCht2Chs(GBStr: String): AnsiString;
end;
implementation
class function TGBBIG5Convert.BIG5ToGB(BIG5Str : String): AnsiString;
var
Len: Integer;
pBIG5Char: PChar;
pGBCHSChar: PChar;
pGBCHTChar: PChar;
pUniCodeChar: PWideChar;
begin
//String -> PChar
pBIG5Char := PChar(BIG5Str);
Len := MultiByteToWideChar(950,0,pBIG5Char,-1,nil,0);
GetMem(pUniCodeChar,Len*2);
ZeroMemory(pUniCodeChar,Len*2);
//Big5 -> UniCode
MultiByteToWideChar(950,0,pBIG5Char,-1,pUniCodeChar,Len);
Len := WideCharToMultiByte(936,0,pUniCodeChar,-1,nil,0,nil,nil);
GetMem(pGBCHTChar,Len*2);
GetMem(pGBCHSChar,Len*2);
ZeroMemory(pGBCHTChar,Len*2);
ZeroMemory(pGBCHSChar,Len*2);
//UniCode->GB CHT
WideCharToMultiByte(936,0,pUniCodeChar,-1,pGBCHTChar,Len,nil,nil);
//GB CHT -> GB CHS
LCMapString($804,LCMAP_SIMPLIFIED_CHINESE,pGBCHTChar,-1,pGBCHSChar,Len);
Result := String(pGBCHSChar);
FreeMem(pGBCHTChar);
FreeMem(pGBCHSChar);
FreeMem(pUniCodeChar);
end;
{进行GBK简体转繁体}
class function TGBBIG5Convert.GBChs2Cht(GBStr: String): AnsiString;
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);
LCMapString($804, LCMAP_TRADITIONAL_CHINESE, pGBCHSChar, -1, pGBCHTChar, Len * 2);
result := String(pGBCHTChar);
FreeMem(pGBCHTChar);
end;
{进行GBK繁体转简体}
class function TGBBIG5Convert.GBCht2Chs(GBStr: String): AnsiString;
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);
LCMapString($804, LCMAP_SIMPLIFIED_CHINESE, pGBCHTChar, -1, pGBCHSChar, Len * 2);
result := String(pGBCHSChar);
FreeMem(pGBCHSChar);
end;
class function TGBBIG5Convert.GBToBIG5(GBStr : String): AnsiString;
var
Len: Integer;
pGBCHTChar: PChar;
pGBCHSChar: PChar;
pUniCodeChar: PWideChar;
pBIG5Char: 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);
GetMem(pUniCodeChar,Len*2);
ZeroMemory(pUniCodeChar,Len*2);
//GB CHT -> UniCode
MultiByteToWideChar(936,0,pGBCHTChar,-1,pUniCodeChar,Len*2);
Len := WideCharToMultiByte(950,0,pUniCodeChar,-1,nil,0,nil,nil);
GetMem(pBIG5Char,Len);
ZeroMemory(pBIG5Char,Len);
//UniCode -> Big5
WideCharToMultiByte(950,0,pUniCodeChar,-1,pBIG5Char,Len,nil,nil);
Result := String(pBIG5Char);
FreeMem(pBIG5Char);
FreeMem(pGBCHTChar);
FreeMem(pUniCodeChar);
end;
end.
[本文来自: 学Delphi网(http://www.xuedelphi.com/) ]详细出处参考:http://www.xuedelphi.cn/article/html2010/2011021813072244.html
分享到:
相关推荐
Delphi工程简繁体转换是一款 帮助Delphi程序员把自己所开发的简体中文版Delphi工程源码转换为繁体中文版源码,然后,在繁体中文环境下直接编译转换得到的繁体中文版源码即可得到彻底的繁体中文版,整个过程不需要...
Delphi繁简转换类代码,GB码、BIG5码转换和简繁体转换表,内码转换对照表作者:简繁体转换对照表:李春德。 MAP 为GB-BIG5对照 MAP2 为BIG5-GB对照 MAP3 为GBK简-GBK繁对照 MAP4 为GBK繁-GBK简对照 ...
对于Delphi工程进行简体繁体之间的转换。很不错的工具。
从Delphi7开始,窗体文件dfm里的汉字都变成了#28162#31992之...因客户的习惯要求,需要对工程做简繁体转换。 本工具可以针对Unicode对应Unicode,汉字对应汉字,做简繁体的双向转换, 对Pas文件的汉字转换也是适用的。
Delphi 汉字繁简转换
功能 1、统计代码行数。 2、批量简繁体转换,针对DFM文件特殊处理,能使转换前后汉字大小基本不变。 3、去注释 空行等 工具针对BCB而写,考虑Delphi代码,但只在BCB下测试过。
简繁体转换小程序,delphi写的,平时自己也用,可以粘贴文本和打开文档进行转换,感觉很方便的,不要动不动就要打开庞大的word进行简繁体转换。
中文字符简繁转化工具是一款帮助Delphi程序员把自己所开发的Delphi工程源码在简体中文版和繁体中文版之间相互转换的工具软件, 然后在繁体中文环境下直接编译转换得到的繁体中文版源码即可得到彻底的 繁体中文版,...
UniCode编码、简繁体互转在Delphi中的应用
Delphi 通过查询资源文件 wbtext.rec 得到编码,得到汉字的五笔、拼音编码 (支持 7500个简体、繁体汉字) 1、批量将汉字转换为拼音码、拼音简码、五笔码、五笔简码。 2、通过ODBC建立“.mdb”数据库,名字为...
可以把delphi代码转换为C++代码,每次转换单个文件。 源代码中的中文,转换后在界面看是乱码,将转换后的代码保存文件后,中文恢复,不再是乱码
delphi to c# 转换代码,对任意DELPHI代码可以转化成C#代码
Delphi演示如何实现UniCode编码、汉字的繁简互转功能,同时将字符转换为unicode码值(十六进制): 常用编码: codepage=936 简体中文GBK codepage=950 繁体中文BIG5 codepage=437 美国/加拿大英语 code...
汉字简繁体批量转换程序源码 可一次性转换一批文件,程序员常用地
Delphi2007之前的API繁简转函数在Delphi2009版本出现后不能用,原因在于之前版本的String默认为AnsiString,而Delphi2007之后的String默认为WideString,同样,PChar指针也就为PAnsiString,所以调用Windows API函数...
用Delphi实现数字与汉字的转换源码
delphi编写的简单计算器及代码, Delphi是由Borland公司推出的Delphi是全新的可视化编程环境,爱电子书吧为广大的Delphi爱好者提供近200本的最新Delphi7教程,温故而知新,看书动手编程还是提高Delphi编程的...
Delphi实现繁体中文与简体中文互转,开发者可以作为参考使用
delphi 中文简体转中文繁体 function GB2Big(GB: string): string; var Len: Integer; begin Len := Length(GB); SetLength(Result, Len); LCMapString(GetUserDefaultLCID, LCMAP_TRADITIONAL_CHINESE, PChar(GB), ...
此软件是用于简体与繁体转换,可以转换delphi源码,sql数据库