常见的三种中文内码转换
来源:互联网 发布:电脑打码软件 编辑:程序博客网 时间:2024/04/30 07:48
//大
function BIG52GBK(Value: string): string;
var
iLength, iReturn: Integer;
sTmp: PWideChar;
sDest: PChar;
DefChar: Char;
begin
Result := '';
if Value = '' then exit;
iLength := MultiByteToWideChar(950, 0, PChar(Value), -1, nil, 0);
GetMem(sTmp, (iLength+1)*SizeOf(WideChar));
ZeroMemory(sTmp, (iLength+1)*SizeOf(WideChar));
//950 ANSI/OEM - Traditional Chinese (
MultiByteToWideChar(950, 0, PChar(Value), Length(Value),
sTmp, iLength+1);
DefChar := '?';
iReturn := WideCharToMultiByte(936, 0, sTmp, -1, nil, 0, @DefChar, nil);
GetMem(sDest, iReturn);
ZeroMemory(sDest, iReturn);
WideCharToMultiByte(936, 0, sTmp, -1, sDest, iReturn, @DefChar, nil);
Result := StrPas(sDest);
FreeMem(sTmp);
FreeMem(sDest);
end;
//GBK->大
function GBK2BIG5(Value: string): string;
var
iLength, iReturn: Integer;
sTmp: PWideChar;
sDest: PChar;
DefChar: Char;
begin
Result := '';
if Value = '' then exit;
iLength := MultiByteToWideChar(936, 0, PChar(Value), -1, nil, 0);
GetMem(sTmp, (iLength+1)*SizeOf(WideChar));
ZeroMemory(sTmp, (iLength+1)*SizeOf(WideChar));
MultiByteToWideChar(936, 0, PChar(Value), Length(Value),
sTmp, iLength+1);
DefChar := '?';
iReturn := WideCharToMultiByte(950, 0, sTmp, -1, nil, 0, @DefChar, nil);
GetMem(sDest, iReturn);
ZeroMemory(sDest, iReturn);
WideCharToMultiByte(950, 0, sTmp, -1, sDest, iReturn, @DefChar, nil);
Result := StrPas(sDest);
FreeMem(sTmp);
FreeMem(sDest);
end;
function MAKELANGID(usPrimaryLanguage, usSubLanguage: WORD): WORD;
begin
Result := (usSubLanguage shl 10) or usPrimaryLanguage;
end;
function MAKELCID(wLanguageID: WORD; wSortID: WORD = SORT_DEFAULT): LCID;
begin
Result := MakeLong(wLanguageID, wSortID);
end;
//GB2312->GBK
function GB2GBK(Value: string): string;
var
iLength: Integer;
sTmp: PChar;
begin
iLength := Length(Value);
GetMem(sTmp, iLength+1);
LCMapString(MAKELCID(MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),
SORT_CHINESE_PRC),
LCMAP_TRADITIONAL_CHINESE, PChar(Value),
iLength+1, sTmp, iLength+1);
Result :=StrPas(sTmp);
FreeMem(sTmp);
end;
//GBK->GB2312
function GBK2GB(Value: string): string;
var
iLength: Integer;
sTmp: PChar;
begin
iLength := Length(Value);
GetMem(sTmp, iLength+1);
LCMapString(MAKELCID(MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),
SORT_CHINESE_BIG5),
LCMAP_SIMPLIFIED_CHINESE, PChar(Value),
iLength+1, sTmp, iLength+1);
Result :=StrPas(sTmp);
FreeMem(sTmp);
end;
- 常见的三种中文内码转换代码
- 常见的三种中文内码转换
- 常见的三种中文内码转换代码
- 常见的三种中文内码转换代码
- 用C语言实现常见的三种中文内码转换
- 用C语言实现常见的三种中文内码转换
- 用C语言实现常见的三种中文内码转换
- C++常见的三种中文内码转换代码
- 用C语言实现常见的三种中文内码转换
- 中文三种内码转换方法
- C语言实现常见的中文内码转换
- C++内码转换的三种方法
- 中文内码转换简易算法
- 中文内码转换简易算法
- 中文内码转换代码
- 三种常见中文内码的转换方法
- 三种常见中文内码的转换方法
- 三种常见中文内码的转换方法
- 《实用软件架构》培训感言
- Agile Development Checklist
- 一些常用的系统解决方法
- javascript 中的replace方法
- Duwamish学习笔记(1)
- 常见的三种中文内码转换
- BaseTestCase 在VCKbase 发表
- 各城市工资水平参照
- 中东问题的历史源流
- 转贴;BlackEagle上的一篇文章
- 杂谈:软件开发人员月薪10000以上的必要条件
- ADO.NET Binding: Handling Errors
- ADO.NET Binding: Master Detail
- 中国嵌入式应用市场四大热点及趋势