delphi2009 字符串转codepage编码

Delphi字符串内存布局全解析:从AnsiString到UnicodeString的演进与实战避坑 本文深入解析了Delphi字符串从AnsiString到UnicodeString的内存布局演进,详细对比了两种字符串类型在引用计数、长度存储和编码方式上的底层差异。通过实战案例揭示了版本升级中常见的指针偏移失效、API调用混乱等陷阱,并提供了基于条件编译、明确类型声明和使用TStringBuilder等工具的迁移策略与性能优化方案,帮助开发者编写健壮、高效的跨版本代码。 阅读详情

delphi2009中使用自带的TEncoding类进行解码时,部分utf-8字符无法正确解码,阿拉伯字符全部都为问号。

所以使用api函数进行转换。

type

    BArr=array of byte;

Function Decode2Bytes(strInput:widestring;CodepageIdentifier:cardinal):BArr;

var
    TLen,lngBufferSize,lngResult,i:integer;
    bytResult:BArr;
begin
    TLen := Length(strInput);
    If TLen = 0 Then
        Exit;

    lngBufferSize := TLen * 3 + 1;
    setlength(bytResult,(lngBufferSize - 1));


    lngResult := WideCharToMultiByte(CodepageIdentifier, 0, @strInput[1], TLen, @bytResult[0], lngBufferSize, nil, 0);


    setlength(result,lngresult);
    for i := 0 to lngResult - 1 do
        result[i]:=bytResult[i];

End;


PS:

1.BArr为自定义byte数组类型。

2.CodepageIdentifier源自微软https://msdn.microsoft.com/en-us/library/dd317756(VS.85).aspx

Delphi演示UniCode编码、简体繁体互转的方法实现.rar Delphi演示如何实现UniCode编码、汉字的繁简互转功能,同时将字符转换为unicode码值(十六进制):   常用编码:   codepage=936 简体中文GBK   codepage=950 繁体中文BIG5   codepage=437 美国/加拿大英语   codepage=932 日文   codepage=949 韩文   codepage=866 俄文   codepage=65001 unicode UTF-8   本例子中仅使用了936、950,如果你要进行其他语言的编码转换,仅需相应改变其中的编码值即可。 立即下载

相关推荐

Java对接海康威视明眸门禁设备

海康威视合作生态致力打造一个能力开放体系、两个生态圈,Hikvision AI Cloud开放平台是能力开放体系的核心内容。它是海康威视基于多年在视频及物联网核心技术积累之上,融合AI、大数据、云计算等技术,为合作伙伴提供的一个二次开发及创新的平台。的SDK复制到linux的lib目录下(如果是docker发布,记得做好共享映射哦)大家有没有想过,windows版的SDK为什么要复制到项目根目录的lib文件夹下?所以发布到linux的时候,我们需要将。打开AcsMain文件。................

Good Luck 7875

delphi编码

437: lpCPInfo.CodePageName := 'Latin-US (DOS)';                      // Do not localize     850: lpCPInfo.CodePageName := 'Western (DOS Latin 1)';               // Do not localize     874: lpCPInfo.

灰色代码 752

Ansys Lumerical实战:5步搞定Mach-Zehnder调制器多物理场仿真(附眼图分析技巧)

本文详细介绍了使用Ansys Lumerical进行行波马赫-曾德尔调制器多物理场仿真的完整流程。通过CHARGE、MODE和INTERCONNECT三大模块的协同工作,从电学参数提取、光学射频特性分析到系统级眼图评估,分步解析了高效仿真与性能优化的核心技巧,为硅光调制器设计提供了实战指南。

weixin_29056781的博客 539

Delphi in a Unicode World Part II: New RTL Features and Classes to Support Unicode

Delphi in a Unicode World Part II: New RTL Features and Classes to Support Unicode By: Nick Hodges Abstract: This article will cover the new features of the Tiburon Runtime Library that will help ha

hhhfff2010的专栏 958

webpack性能优化-optimization.splitChunks.chunks中的“all“、“async“和“initial“

最初,chunks(以及内部导入的模块)是通过内部 webpack 图谱中的父子关系关联的。CommonsChunkPlugin 曾被用来避免他们之间的重复依赖,但是不可能再做进一步的优化。 ——摘自 webpack 从 webpack v4 开始,移除了 CommonsChunkPlugin,取而代之的是 optimization.splitChunks。 而关于 optimization.splitChunks 中的chunks,webpack 官方文档却没有很好的进行举例解释,只说明了 async.

程序员秋风的博客 3135

三菱CNC数据采集实战:从SDK安装到C#代码调试全流程(附完整资源包)

本文为C#开发者提供了三菱CNC数据采集的完整实战指南。详细介绍了从获取并安装核心A2协议SDK、配置Visual Studio开发环境,到理解COM接口文档、封装C#通信类,并构建具备多设备连接与定时采集功能的WinForms应用程序的全流程。文章重点分享了网络调试、异常处理及性能优化等关键实战经验,帮助开发者高效打通工业自动化数据采集链路。

oauth7security的博客 707

Delphi 一些函数解释

AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小AnyPopup 判断屏幕上是否存在任何弹出式窗口ArrangeIconicWindows 排列一个父窗口的最小化子窗口AttachThreadInput 连接线程输入函数BeginDeferWindowPos 启动构建一系列新窗口位置的过程BringWindowToTop 将指定的窗口带至窗口列表顶...

weixin_30577801的博客 363

基于树莓派4B设计的厨房环境监测系统_368

本项目设计并实现了一种基于树莓派4B的厨房环境监测系统,提升厨房使用过程中的安全性与智能化水平。系统采用树莓派4B作为主控核心,集成DHT11温湿度传感器、MQ2烟雾传感器、火焰传感器、光敏传感器、水滴检测传感器等多种传感器,实现对厨房环境温湿度、烟雾、火焰、光照与溢水等参数的实时监测,并通过蜂鸣器进行本地报警。系统通过WIFI连接互联网,利用MQTT协议将环境数据上传至华为云物联网平台,实现远程可视化监控。

415

关于delphi的程序在英文操作系统下乱码问题

由于delphi7编译的程序是非unicode程序(代码页),所有在英文操作系统下会有乱码的问题。 解决方法: 1. 首先在Lageuage中选"Instal files for East Asian Lanuages",这步一定要做,否则中文就乱码。 2. 区域设置里面的Advanced选默认的非Unicode的程序的的语言解释为Chinese(PRC),Delphi是非Unicode程序,而vb6和.net都是Unicode的程序,所以这步对vb6和.net程序应该是不需要 3. 但有些客户不允

一万个兵的专栏 1886

STM32F767 GPIO跑马灯工程从零搭建指南

嵌入式开发中,基于HAL库的STM32工程初始化是确保外设可靠运行的基础环节。其核心在于理解芯片时钟树配置原理、GPIO工作模式与硬件电气特性之间的映射关系。正确启用RCC时钟源、合理分配AHB/APB总线分频系数,可保障系统主频稳定;而精准设置推挽输出、上下拉状态及引脚速度,则直接影响LED等基础外设的驱动可靠性。结合STM32CubeMX图形化配置工具,开发者能将寄存器级操作抽象为可视化流程,显著提升工程可追溯性与复用性。本文以STM32F767IGT6和阿波罗开发板为载体,详解从Repository固

weixin_42453228的博客 61

ComfyUI 提示Allocation on device 显存占满的解决方法及秋叶整合包的优化方法

最近在玩ComfyUI的时候,发现一个让人崩溃的问题——VRAM一直占满,最终报错: 简单来说,就是显卡显存溢出了,导致程序无法继续运行。尤其是一些大模型或者复杂工作流,很容易让显存飙升到极限。那怎么办?直接在启动命令后加上 ,例如: 这个参数的作用是啥? 默认情况下,ComfyUI会尽量让模型一直留在显存里,即使有些部分暂时用不到,导致显存迟早被填满。而 可以强制让ComfyUI把数据卸载到常规内存,减少显存占用。如果你的显存真的不够用,还可以再加 参数: 这个参数的意思就是开启低显存模式,进一步优化

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

Delphi2009下开发注意事项

原创出自:http://hi.baidu.com/superkinger/blog/item/be2175589a9126d99d820474.html  现有 Delphi 项目迁移到 Tiburon 中的注意事项 随着 Embarcadero 8 月 25 号发布 RAD Studio 2009 (Tiburon) 以来(Tiburon 的 RTM日期可能要延后到 9

tjb_1216的专栏 2831

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

(转)Delphi 中的字符串

一、Delphi 2009 之前的字符串(不支持 Unicode):  Delphi 2009 之前的字符串分为 3 种:ShortString、AnsiString、WideString。【ShortString】  ShortString 是一种比较古老的 Pascal 字符串格式,它最多只能容纳 255 个字节的字符。当我们声明一个 ShortString 类型的变量时,Delph...

anranbing3284的博客 252

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Delphi 项目迁移到 Tiburon(Delphi2009,Delphi2010) 中的注意事项

Delphi 项目迁移到 Tiburon(Delphi2009,Delphi2010) 中的注意事项 翻译:现有 Delphi 项目迁移到 Tiburon 中的注意事项 CnPack 开源软件项目  2008-08-31 16:45:05<br /><br />现有 Delphi 项目迁移到 Tiburon 中的注意事项 <br />翻译:峪飞鹰<br />2008-08-30 <br />随着 Embarcadero 8 月 25 号发布 RAD Studio 2009 (Tiburon) 以来(Tib

月亮宝石的天空 1420

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

现有 Delphi 项目迁移到 Delphi 2009(Tiburon) 中的注意事项

转自:http://cnpack.org/showdetail.php?id=598&lang=zh-cn现有 Delphi 项目迁移到 Tiburon 中的注意事项 翻译:峪飞鹰2008-08-30 随着 Embarcadero 8 月 25 号发布 RAD Studio 2009 (Tiburon) 以来(Tiburon 的 RTM日期可能要延后到 9 - 10

lee576的专栏 1611

转:现有 Delphi 项目迁移到 Delphi 2009(Tiburon) 中的注意事项

转自:http://cnpack.org/showdetail.php?id=598&lang=zh-cn 现有 Delphi 项目迁移到 Tiburon 中的注意事项 翻译:峪飞鹰 2008-08-30 随着 Embarcadero 8 月 25 号发布 RAD Studio 2009 (Tiburon) 以来(Tiburon 的 RTM 日期可能要延后到 9 - ...

weixin_30673715的博客 133

Delphi2009迁移注意事项(转)

现有 Delphi 项目迁移到 Tiburon 中的注意事项 随着 Embarcadero 8 月 25 号发布 RAD Studio 2009 (Tiburon) 以来(Tiburon 的 RTM 日期可能要延后到 9 - 10 月),随着 Tiburon 全面支持 Unicode,现有的 Delphi / C++ Builder 项目要迁移到 Unicode 下应该注意些什么也成为大家最为关心...

weixin_30871905的博客 146

Delphi2009迁移注意事项

现有 Delphi 项目迁移到 Tiburon 中的注意事项 随着 Embarcadero 8 月 25 号发布RAD Studio 2009 (Tiburon) 以来(Tiburon 的 RTM 日期可能要延后到 9 - 10 月),随着Tiburon 全面支持 Unicode,现有的 Delphi / C++ Builder 项目要迁移到 Unicode下应该注意些什么

forverlove的专栏 807

现有Delphi项目迁移到Tiburon delphi2009中的注意事项

随着 Embarcadero 8 月 25 号发布 RAD Studio 2009 (Tiburon) 以来(Tiburon 的 RTM 日期可能要延后到 9 - 10 月),随着 Tiburon 全面支持 Unicode,现有的 Delphi / C++ Builder 项目要迁移到 Unicode 下应该注意些什么也成为大家最为关心的问题。Tiburon 对 Unicode 的支持不仅仅是将原

GaryYuan 迟来的博客 1186

现有 Delphi 项目迁移到 Tiburon 中的注意事项[转]

 现有 Delphi 项目迁移到 Tiburon 中的注意事项 翻译:峪飞鹰随着 Embarcadero 8 月 25 号 发布 RAD Studio 2009 (Tiburon) 以来(Tiburon 的 RTM 日期可能要延后到 9 - 10 月),随 着 Tiburon 全面支持 Unicode,现有的 Delphi / C++ Builder 项目要迁移到 Unicode 下应该注意些

小宇飞刀的BLOG 805

Delphi字符串性能优化实战:大文本处理、零拷贝技巧与编码转换最佳实践

本文深入探讨了Delphi字符串性能优化的实战技巧,涵盖大文本处理、零拷贝技术与编码转换最佳实践。通过分析UnicodeString内存结构、指针操作优化及分块处理策略,显著提升处理效率。实战案例显示,优化后500MB文本解析时间从2分钟缩短至8秒,适用于高频字符串操作场景。

kafka6courier的博客 675

现有 Delphi 项目迁移到 Tiburon 中的注意事项

翻译:现有 Delphi 项目迁移到 Tiburon 中的注意事项 ...

weixin_33998125的博客 74
上一篇: 基于C# Winform的串口数据接收
下一篇: Entity Framework Core必须牢记的三条引用三条命令
woolnil
博客等级 码龄22年 39粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值