(转)简体繁体转换代码(Big5-GB | GBK简体-GBK繁体)
{进行big5转GB内码}
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;
Function GB2Big5(GBStr: String): AnsiString;
{进行GB转BIG5内码}
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;
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 CHS -> GB CHT
LCMapString($804, LCMAP_SIMPLIFIED_CHINESE, pGBCHTChar, -1, pGBCHSChar, Len * 2);
Result := String(pGBCHSChar);
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);
End;
(转)简体繁体转换代码(Big5-GB | GBK简体-GBK繁体)相关推荐
- js简体繁体转换代码
js简体繁体转换代码 javascript简体繁体转换代码 转载地址:http://www.cnblogs.com/genson/archive/2008/04/16/1004632.html js简 ...
- C#实现简体繁体转换代码示例
//简体转繁体 public static string _ConvertChinTrad(string strInput) { EncodeRobert edControl = new Encode ...
- Swift代码库之中文简体与繁体转换
原来以为简体与繁体转换挺难实现的,后来看了GBig代码后才恍然大悟.其实非常简单就是对表查询.准备一个简体字符串,准备一个繁体字符串. import UIKitclass ViewController ...
- java 繁体转简体_java代码实现简体繁体转换
汉字分为简体和繁体字,这是众所周知的,虽然繁体字中国大陆这边用的并不会太多,但时不时的还是会使用到.那么,如何做到简体字和繁体字的转换呢?其实很简单,这里附上一个java版本的简繁体转换,用网上找的接 ...
- 一段Big5繁体转换简体GB2312的程序
using System; using System.IO; using System.Text; using System.Runtime.InteropServices; //Big5繁体转换简体 ...
- php转繁体代码,php在gbk编码下繁体与简体互转函数
php在gbk编码下繁体与简体互转函数 $simple = "台号皑蔼碍爱翱袄奥坝罢摆败颁办绊帮绑镑谤剥饱宝报鲍辈贝钡狈备惫绷笔毕毙闭边编贬变辩辫鳖瘪濒滨宾摈饼拨钵铂驳卜补参蚕残惭惨灿苍舱仓 ...
- 简体繁体转换功能php,PHP输出控制功能在简繁体转换中的应用
下载本文示例代码 概要:本文对PHP的输出控制功能进行了简单介绍并对其在简繁体转化中的应用给出了具体思路和实例. 一 PHP 输出控制功能介绍 PHP作为当今流行的脚本语言之一,具有编写简便,执行速度 ...
- 汉字简体繁体转换----Javascript
最近看到有个简体--繁体字互相转换的程序,是用JS实现的,感觉很好玩,所以拿来研究研究.先看看界面如下: 汉字简体繁体转换 上面的所有代码如下: <script> function cop ...
- Opencc简体、繁体转换
除了写代码进行简体.繁体转换外,opencc也支持命令行进行转换. opencc --help可以看到具体信息. 参数: -i [file], --input=[file] 从 [file] 读 ...
- Perl中简体字转换为繁体字(GBK转换成big5)
今天用Perl解决了一个转码出现乱码的问题.需求是将gbk转换成big5.项目源码用的函数是decode()和encode()两个函数.源码如下: #!/usr/bin/perluse strict; ...
最新文章
- SystemImager自动化安装Linux系统(下)
- java开源写字板_简单的写字板 - 努力喵的个人空间 - OSCHINA - 中文开源技术交流社区...
- 可视化COCO分割标注文件,以及单个json合成coco格式标注文件
- 无需安装Oracle,直接使用PL/SQL的方法
- PDF阅读器Foxit Reader 2.2简体中文版
- 【TypeError: float() argument must be a string or a number, not ‘map’】
- day16-Dom提交表单以及其他
- C++创建动态链接库(*.dll)
- 处理Oracle 11g在用EXP导出时,空表不能导出
- 清华大学李涓子教授:AI系统如何实现认知推理?
- 视频教程-GO语言打造区块链视频教程-区块链
- 软考之软件评测师考试详解以及准备篇
- -Dominant Character
- git Untracked files
- [tensorflow] 数字标签转化为one-hot形式的tensor
- win7局域网计算机 慢,Win7系统局域网访问文件速度缓慢怎么办
- docker版mongodb数据同步到elasticsearch
- 固态硬盘、机械硬盘工作原理和区别(内附接口知识)
- java手机 上网_手机的浏览器能上网,但手机的JAVA程序不能上网
- 数据产品经理---如何设计指标字典
热门文章
- 51单片机电路原理图_51单片机入门(第1篇):纯干货,单片机最小系统
- 微软笔试题2:403 Forbidden
- python课设参考文献_Python课程设计任务书
- Android positionViewHolder{4d61b3c position=2 id=-1, oldPos=-1, pLpos:-1 no parent}
- 基于模型驱动低代码平台的实现原理
- Unity3D 虚拟现实开发(一)
- JS自定义鼠标右键菜单
- U盘中毒,word文档变成exe文件的解决办法
- 最近开发了一个向QQ好友自动发送消息的程序
- vs2005 安装sp1补丁问题汇总及安装解决方案,希望有大家有帮助