`
ylilike
  • 浏览: 148174 次
  • 性别: Icon_minigender_1
  • 来自: 洛阳
社区版块
存档分类
最新评论

Delphi汉字简繁体转换代码

阅读更多

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项目中处理汉字的繁简转换,为用户提供更加友好的...

    简繁体转换小程序(194K)

    为了满足这种需求,开发了《简繁体转换小程序》,这是一款用Delphi编写的实用工具,旨在为用户带来高效便捷的简繁体转换体验。 Delphi是一种高效的编程语言,它拥有出色的Windows平台性能和丰富的组件库,使得开发...

    UniCode编码、简繁体互转在Delphi中的应用

    此外,Delphi的标准库中并没有直接提供简繁体转换的函数,但可以通过引入如`JclUnicode`或`OpenCC4Delphi`等第三方组件来实现转换功能。 `JclUnicode`库提供了`JclUnicode.ToSimplifiedChinese`和`JclUnicode....

    代码工具 统计行数 简繁体转换

    【代码工具 统计行数 简繁体转换】是一款专为编程人员设计的实用工具,它结合了代码行数统计与批量简繁体转换的功能。这款工具特别适合使用BCB(Borland C++ Builder)或Delphi开发环境的程序员,尽管它主要在BCB...

    汉字简繁体批量转换程序源码

    `BatchGb2Big5.exe`是最终的可执行文件,用户可以直接运行来执行汉字的简繁体转换。`BatchGb2Big5.dof`则是项目的编译选项文件,用于记录开发环境的配置信息,如编译器选项、库路径等。 在实际操作中,这个程序可能...

    简体与繁体转换可以转换delphi源码,sql数据库

    "简体与繁体转换"是一款专为解决简体中文与繁体中文之间转换问题的软件,尤其针对Delphi源代码和SQL数据库这两类特殊的数据类型。这款软件名为"ConverterPlus30.exe",它提供了一个便捷的解决方案,帮助开发者和...

    Delphi简体转繁体—繁体转简体

    本文将详细介绍如何使用Delphi进行简体中文与繁体中文的相互转换,并通过具体的代码示例来说明这一过程。 #### Delphi中的中文编码转换 在Delphi中,可以利用Windows API来进行不同编码之间的转换。这里主要涉及到...

    简繁体文字转换程序(开源)

    《简繁体文字转换程序(开源)》是一个实用的软件工具,主要功能是实现简体中文与繁体中文之间的相互转换。它不仅包含了常见的BIG5与GB编码的转换,还支持对文字显示的直接转换,这在处理不同地区或语言环境下的文本...

    一个不错的Delphi内码及繁简转换模块..rar

    总的来说,这个“Delphi内码及繁简转换模块”是一个实用的工具,可以帮助开发者处理中文字符编码问题,以及在简体中文和繁体中文之间灵活切换。它的实现涉及到字符编码理论、Delphi编程技术,以及可能的第三方库集成...

    delphi 7,2009 繁体与简体互转

    参数 `$804` 表示简体中文(GB2312),`LCMAP_SIMPLIFIED_CHINESE` 和 `LCMAP_TRADITIONAL_CHINESE` 分别用于指定简体和繁体转换。 2. **MultiByteToWideChar**:用于将多字节字符转换为宽字符(Unicode)。 3. **...

    繁简转换器 Delphi源码

    总之,"繁简转换器 Delphi源码"涵盖了Delphi编程、文本处理、字符编码转换、数据库操作和文件处理等多个方面,对于想要深入学习Delphi和中文字符处理的开发者来说,这是一个有价值的参考资源。通过分析和理解源码,...

    DELPHI 10.3编码转换 iso-8859-1转GBK,GBK转iso-8859-1

    而`GBK`是中文扩展的编码标准,主要服务于简体中文环境,它在GB2312的基础上增加了许多繁体字和少数其他语言的字符。 在Delphi 10.3中进行编码转换,可以使用内置的字符串处理函数或者第三方库。比如,可以使用`...

    Delphi目录批量简繁转换.rar

    本项目“Delphi目录批量简繁转换.rar”提供了一个用Delphi编程语言编写的实用工具,能够方便地将整个目录下的文件名从繁体中文转换为简体中文。下面,我们将深入探讨这一工具的技术细节。 首先,Delphi是一款基于...

    繁简自动转换例子

    2. Unicode和字符编码:理解UTF-8、GBK等编码方式,以及它们在简繁体转换中的作用。 3. OpenCC或其他转换库的使用:了解如何在Delphi中导入和调用外部库,以及配置转换参数。 4. 文件I/O操作:读取和写入文本文件,...

    繁体、简体编辑转换类,Delphi..rar

    本资源"繁体、简体编辑转换类,Delphi..rar"显然是为了解决在Delphi程序中处理繁体和简体中文转换的问题。在本文中,我们将深入探讨Delphi编程环境,以及如何在Delphi中实现字符编码的转换。 Delphi,全称Borland ...

    汉字转拼音delphi

    6. **扩展功能**:除了基本的汉字转拼音,还可以添加额外的功能,比如声调标记、多音字处理、简繁体转换等,以满足更复杂的应用场景。 通过理解和实践"汉字转拼音Delphi",开发者可以提升在Delphi环境下的文本处理...

    繁简转换工具 用来查看繁体乱码好用

    汉化DELPHI程序可能需要处理包含源代码和资源文件的工程,其中可能混有繁体和简体中文,转换工具就显得尤为重要。 总的来说,这个“繁简转换工具”具备以下关键知识点: 1. 中文字符的编码标准:BIG5(繁体)和GB...

    DELPHI简繁转换

    DELPHI简繁转换是一个专为使用DELPHI编程语言的开发者设计的工具,它能够帮助用户方便地在简体中文和繁体中文之间转换源代码。DELPHI是一种基于对象 Pascal 的集成开发环境(IDE),广泛用于创建桌面应用程序。在...

    繁简转换应用程序的源代码

    本资源提供的"繁简转换应用程序的源代码"是针对DELPHI 6/7开发平台的专业解决方案,它能够帮助开发者轻松实现文本的繁体与简体之间的转换,提高程序的兼容性和用户体验。 首先,我们来了解什么是DELPHI 6/7。DELPHI...

    UniCode_delphi_delphiunicode_

    此外,还可以使用第三方库,如ICU(International Components for Unicode),它提供更丰富的字符和字符串操作功能,包括简繁体转换。在Delphi中,可以通过 Indy 或其他第三方组件集来集成ICU库。 在实际开发中,...

Global site tag (gtag.js) - Google Analytics