http://parad1se.bokee.com/6250501.html

delphi 编码转换 unicode gbk big5

以下代码在DELPHI 7上调试通过,主要使用了api函数中MultiByteToWidechar

function UnicodeEncode(Str:string;CodePage:integer):WideString;
var
Len:integer;
begin
Len:=Length(Str)+1;
SetLength(Result,Len);
Len:=MultiByteToWideChar(CodePage,0,PChar(Str),-1,PWideChar(Result),Len);
SetLength(Result,Len-1); //end is #0
end;

function UnicodeDecode(Str:WideString;CodePage:integer):string;
var
Len:integer;
begin
Len:=Length(Str)*2+1; //one for #0
SetLength(Result,Len);
Len:=WideCharToMultiByte(CodePage,0,PWideChar(Str),-1,PChar(Result),Len,nil,nil);
SetLength(Result,Len-1);
end;

function Gb2Big5(Str:string):string;
begin
SetLength(Result,Length(Str));
LCMapString(GetUserDefaultLCID,LCMAP_TRADITIONAL_CHINESE,
PChar(Str),Length(Str),
PChar(Result),Length(Result));
Result:=UnicodeDecode(UnicodeEncode(Result,936),950);
end;

function Big52Gb(Str:string):string;
begin
Str:=UnicodeDecode(UnicodeEncode(Str,950),936);
SetLength(Result,Length(Str));
LCMapString(GetUserDefaultLCID,LCMAP_SIMPLIFIED_CHINESE,
PChar(Str),Length(Str),
PChar(Result),Length(Result));
end;

关键使用了UnicodeToUtf8这个函数
function Utf8Encode(const WS: WideString): UTF8String;
var
L: Integer;
Temp: UTF8String;
begin
Result := '';
if WS = '' then Exit;
SetLength(Temp, Length(WS) * 3); // SetLength includes space for null terminator
L := UnicodeToUtf8(PChar(Temp), Length(Temp)+1, PWideChar(WS), Length(WS));
if L > 0 then
SetLength(Temp, L-1)
else
Temp := '';
Result := Temp;
end;

delphi 编码转换 unicode gbk big5相关推荐

  1. Python:UTF-8编码转换成GBK编码

    2019独角兽企业重金招聘Python工程师标准>>> #!/usr/bin/env python # -*- coding:utf-8 -*- #UTF-8转换成GBK编码 #te ...

  2. Android字符编码转换,GBK转UTF-8

    Android字符编码转换,GBK转UTF-8 网上看了很多都不能用,最后看到这个方法,很靠谱,分享给大家! String str; str = new String(str.getBytes(&qu ...

  3. JAVA文件编码转换:gbk转utf-8

    JAVA文件编码转换 Android项目从eclipse迁移至Android Studio,遇到了编码问题,本来想偷懒找个工具,奈何百度大法没练好,索性就自己写了2333 说明:将gbk编码的.jav ...

  4. 中文字符串的编码转换 UTF-8//GBK

    golang在处理中文时默认的是utf-8编码,当某些情况下遇到GBK编码或需要GBK编码时,就会出现显示乱码的问题. 1. simplifiedchinese golang官方有针对中文编码转换的包 ...

  5. Python字符编码转换Unicode和str

    参考链接1:https://blog.csdn.net/VictoriaW/article/details/75314737 参考链接2:https://blog.csdn.net/sheldonwo ...

  6. python编码转换在线_Python字符编码转换Unicode和str

    ## str 我们平时写的用引号括起来的字符串都是str类型的. >>> x = '哈哈' >>> x '\xb9\xfe\xb9\xfe' ### 根据上面的打印 ...

  7. python声明编码为gbk_python入门:UTF-8转换成GBK编码

    1 #!/usr/bin/env python 2 #-*- coding:utf-8 -*- 3 #UTF-8转换成GBK编码 4 #temp(临时雇员,译音:泰坡) 5 #decode(编码,译音 ...

  8. UTF-8到Unicode的编码转换

    开发者在线 Builder.com.cn 更新时间:2008-03-25作者:happykevins 来源:CSDN 本文关键词: 编码转换 unicode UTF-8 游戏 UTF-8就是Unico ...

  9. java 字符转化字符串_【转载】java字符串的各种编码转换

    来自:http://www.blogjava.net/rabbit/archive/2008/03/27/189009.html import java.io.UnsupportedEncodingE ...

最新文章

  1. PoPo数据可视化第9期
  2. jupyter notebook怎么写python代码_如何在Jupyter Notebook中使用Python虚拟环境?
  3. 【Ids4实战】分模块保护资源API
  4. c++ double 截取_c选择double小数点后自动截取3位,不...
  5. xp系统计算机无法用搜索功能,XP系统搜索功能无法使用的六种解决方法
  6. Cesium 模拟下雪
  7. matlab求解极限问题(limit函数的用法)
  8. vue如何打开pdf文件
  9. 离散数学——命题逻辑
  10. 设计模式-工厂模式(Factory)
  11. 高仿闪电报销app查看图片效果的实现
  12. [转载]Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images
  13. 【电信学】【2019.03】5G异构网络中的移动性管理
  14. linux下github使用教程,Linux下git操作GitHub步骤教程
  15. 学习使用微信小程序动态获取当前时间并实时跳动
  16. Android EventBus使用
  17. 一步带你了解C语言中++、--的使用方法!
  18. AJAX学习前奏----JS基础加强
  19. 微博营销有什么价值?应注意什么?
  20. Docker 生产环境之使用可信镜像 - 在内容信任(content trust)沙盒中演示

热门文章

  1. 毕业设计之 - 基于java的CRM客户关系管理系统的设计与实现【源码+论文】
  2. 【Android】安卓ADT下载地址
  3. ubuntu 12.04中超强两笔输入法的安装与配置
  4. 消息队列 Kafka的架构原理 (小白必看)
  5. 防火墙链路检测工具(ip-link)
  6. 非CI执行Allure2 trends空白问题
  7. 那些进大厂的程序员,「简历」都是怎么写的?我决定分享出来
  8. 【AUCell】单细胞基因集打分
  9. 关于TFT彩屏ILI9325X轴显示镜像问题的解决
  10. import pandas