将 TBytes (UTF-16) 转换为字符串的最佳方法是什么?

2023-11-25

在 Delphi 2009 中将声明为 TBytes 的字节数组转换为 unicode 字符串的最佳方法是什么?在我的特定情况下,TBytes 数组已经具有 UTF-16 编码数据(每个字符 2 个字节)。

由于 TBytes 不存储空终止符,因此仅当数组恰好在与其相邻的内存中具有 #0 时,以下操作才有效。

MyString := string( myBytes );

如果不是,字符串结果将在末尾包含随机数据(它也可能导致读取冲突,具体取决于在内存中遇到 #0 所需的时间)。

如果我使用 ToBytes 函数,它会返回 't'#0'e'#0's'#0't'#0,这不是我想要的。


我最终使用了

TEncoding.Unicode.GetString( MyByteArray );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 TBytes (UTF-16) 转换为字符串的最佳方法是什么? 的相关文章

  • Delphi - 如何使用 iPhone 作为图片源通过 OpenDialog 获取目录

    我有一个 Delphi 应用程序 D2010 它允许用户通过 OpenDialog 选择 JPG 文件 当我从普通 Windows 目录中选择文件时 我的 TOpenDialog Filename 包含该文件的完整路径 并且我的代码可以正常
  • UCS2 与 UTF。 UCS2编码无法显示哪些语言?

    UCS2 比 UTF 编码更容易在 Visual C 中使用 UCS2 编码不支持哪些语言 没有什么是你可能关心的 或者更重要的是 没有字体 UCS2 为您提供基本的多语言平面 您可以在 Unicode 网站上找到指定平面的概述 0 基本多
  • 通过“修改日期”确定文件夹中的哪个文件是最新的?

    我需要扫描特定文件夹中的最新文件 基本上检查修改日期以查看哪个是最新的 但请记住这些文件具有随机名称 这是我到目前为止得到的 procedure TForm1 Button1Click Sender TObject begin ftp Ho
  • 新编译的应用程序需要 UAC/elevation?

    我有一个系统 我将其设置为普通的 UAC 并在我的 delphi 环境中编译名为 ka exe 的项目 并为其创建一个 installshield 项目 设置完毕 一切顺利 但每当我开始我的程序时 它都需要提升 而我不知道为什么 为了确保
  • 如何将IDL导入到Delphi中?

    我如何导入接口定义语言 idl 文件存入Delphi 将类型和接口转换为 pascal 文件 我试过了 File Open 它只显示 idl 文本文件的文本 Project 添加到项目 它只是 就像 添加了一个 idl文本文件到项目 成分
  • Firebird 或 NexusDB

    我知道有很多与 Delphi 数据库相关的问题 但我只考虑这两个数据库 我需要查询大约 100 000 条记录 根据您的经验 哪个更快 作为嵌入式 as C S Thanks 我还没用过 Nexus tbh 但我经常使用 Firebird
  • 如何使用 IdTCPClient 等待来自服务器的字符串?

    我的 IdTelnet indy 10 1 有问题 我无法以 Unicode 模式从服务器读取数据 现在我想用 IdTCPClient 编写 telnet 终端 服务器有时发送一行 有时发送越来越多的行 但发送之间没有固定的时间 现在我的问
  • 在 XMLDocument 中使用 DocumentElement 时发生访问冲突

    当我尝试使用时 我总是遇到访问冲突DocumentElement of the XMLDocument 我创造XMLDocument基于某些文件的存在 错误信息 项目project1 exe引发异常类EAccessViolation 消息
  • 是否可以在虚拟树视图中选择多个列?

    我需要添加功能来复制节点和列的矩形选择 但我找不到任何方法来实际选择虚拟树视图中的多个列 除了 toFullRowSelect 之外 我只是错过了什么吗 如果没有 是否有一个后代具有类似网格的多列选择支持 经过一些测试后 我得出了以下结论
  • android中如何将字符串转换为unicode

    我正在解析一些unicodes from json to my android应用程序 API 给出unicodes像这样的图标 ue600 当我将这个unicode直接添加到textview like textview setText u
  • 在该对象调用的事件期间销毁该对象

    我有一个按钮 它的 OnClick 事件调用一个销毁按钮的过程 但随后 线程 想要返回到 OnClick 事件 并且我遇到了访问冲突 我完全被难住了 您需要在按钮的所有代码执行完毕后销毁该按钮 执行此操作的标准方法是将用户定义的消息发布到表
  • 如何为所有语言创建字母数字正则表达式?

    我今天遇到了这个问题 此正则表达式仅匹配英语 a zA Z0 9 如果我需要支持这个世界上的任何语言 我应该编写什么正则表达式 如果您使用字符类简写和 Unicode 识别正则表达式引擎 您就可以做到这一点 这 wclass 匹配 单词字符
  • 这些 Unicode 组合字符是怎么回事?我们如何过滤它们?

  • C++中判断unicode字符是全角还是半角

    我正在编写一个终端 控制台 应用程序 该应用程序应该包装任意 unicode 文本 终端通常使用等宽 固定宽度 字体 因此要换行文本 只需计算字符数并观察单词是否适合一行并采取相应的操作 问题是 Unicode 表中的全角字符在终端中占用了
  • 构建机器是否需要单独的 Delphi XE4 许可证?

    用于通过以下方式构建应用程序dcc32在构建服务器上我可以使用 Delphi Trial 这种方法的许可证没有任何问题 现在 我将通过以下方式在 TeamCity 上构建 Delphi XE4 应用程序msbuild 我是否需要拥有构建机器
  • PHP UTF-8 问题 - 如果我在 PHP 中创建一个字符串...它是 UTF-8 格式吗?

    在 PHP 中 如果我创建一个像这样的字符串 str bla bla here is my string 然后我可以使用 mbstring 函数将该字符串作为 UTF8 进行操作吗 Will this work str mb strlen
  • 为什么不提高EInvalidPointer?

    德尔福文档状态 http docwiki embarcadero com Libraries en System SysUtils EInvalidPointer 切勿提出E无效指针直接异常 E无效指针由内存管理器内部引发 我正在编写一个自
  • 在 SSIS 2012 中为 Oracle CLOB 转换 DT_TEXT

    我正在使用 SSIS 2012 我有一个带有 DT TEXT 类型的输出列的脚本组件 它是来自网页的 XML 我有一个 OLE DB 目标 使用 OLE DB 的本机 OLD DB Oracle 提供程序 并且该字段的表定义为 CLOB 这
  • SSL 错误 1409442E 使用 TIdHTTP 通过 HTTPS 下载文件 [重复]

    这个问题在这里已经有答案了 我正在使用德尔福10 3 3 下面的代码曾经有效 但现在尝试通过 HTTPS 下载文件时遇到错误 连接 SSL 错误错误 1409442E SSL 例程 SSL3 READ BYTES tlsv1 警报协议版本
  • Json.dump 失败并显示“必须是 unicode,而不是 str”TypeError

    我有一个 json 文件 其中恰好有大量中文和日文 以及其他语言 字符 我将其加载到我的 python 2 7 脚本中使用io open如下 with io open multiIdName json encoding utf 8 as j

随机推荐

  • 如何覆盖图像元数据?

    如果 key val 已存在于 CGImageDestination 的原始图像元数据中 我似乎无法将图像元数据正确写入图像 如果它们的键 值不存在于原始元数据中 它就可以正常工作 几乎就像原始图像中的图像元数据属性优先于修改一样 这是我不
  • 如何在ggplot2中使用geom_sf获得多边形边界

    这个问题之前已经被问过一个旧线程 但接受的答案目前在当前版本的 ggplot2 中不再有效 这是一个最小的例子 library ggplot2 library rnaturalearth world ne countries scale m
  • 如何创建一个缓存对象的类?

    我对 C 中的泛型很陌生 我正在尝试创建一个存储 程序的其他部分可以请求模型对象 这个想法是 如果我的缓存类有该对象 它会检查其日期 如果该对象不早于 10 分钟 则返回该日期 如果它早于 10 分钟 它会从在线服务器下载更新的模型 如果它
  • 理查森-露西算法如何工作?代码示例?

    我试图弄清楚反卷积是如何工作的 我理解它背后的想法 但我想了解一些实现它的实际算法 这些算法将模糊图像及其点样本函数 模糊内核 作为输入 并生成潜在图像作为输出 到目前为止我发现理查森 露西算法 其中数学似乎并不那么困难 但我无法弄清楚实际
  • 为什么我无法重写接口方法?

    假设我有一个如下界面 interface CardHolder IEnumerable
  • Scala:如何继承“静态槽”?

    嗯 我正在学习 Scala 所以这个问题对于大多数人来说可能太基础了 在 Java 中 我可以在类中拥有静态槽 函数或变量 然后我也会在继承类中拥有该槽 在 Scala 中 我没有静态槽 但有伴生对象 但我发现这些对象不是继承类的一部分 所
  • 如何使用ABCPdf.NET从PDF文件的所有页面中提取文本?

    如何使用ABCPdf NET工具从PDF文件中提取内容文本 我尝试了 GetText 方法 但没有提取内容 var doc new Doc var url FileName pdf doc Read url string xmlConten
  • 客户端 HTML 清理有多安全?

    我最近一直在研究 Pagedown js 因为在我的页面上使用 mark down 而不是丑陋的只读文本区域的吸引力 不过 我非常谨慎 因为欺骗经过消毒的转换器似乎很容易 我已经看到了一些关于 Angular js 及其 html 绑定的讨
  • 如何使用ajaxStart显示加载微调器?

    我有一个使用命令 shell exec 运行 python 脚本的网页 我想要一个加载微调器 在 python 脚本运行时显示 请稍候此页面加载 之类的消息 然后在完成后显示其余的回显 HTML 我找到了一个似乎不错的解决方案https s
  • 生成迷宫的好算法是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 假设你想要一个 N M 网格上的简单迷宫 有一条路径通过 并且有很多死胡同 但这看起来 正确 即就像有人手工制作的 没有太多微小的死胡同和所有这些
  • org.apache.spark.rpc.RpcTimeoutException:Futures 在 [120 秒] 后超时。这个超时由spark.rpc.lookupTimeout控制

    将 Spark 应用程序提交到 YARN 时 出现与容器相关的以下错误 HADOOP 2 7 3 SPARK 2 1 环境在单节点集群中运行伪分布式模式 该应用程序在本地模型中运行时可以完美运行 但是尝试使用 YARN 作为 RM 在集群模
  • 在Android中以编程方式创建基于VpnService的L2TP/IPSec VPN

    我搜索了一天 关于基于VpnService创建L2TP IPSec VPN 但没有匹配到的结果 使用本地VPN https github com hexene LocalVPN 我可以基于 VPNService 创建一个 VPN OpenV
  • Solr - 如何“分组”和“限制”?

    假设我从数据库中索引了以下内容 Id Code Description 1 A1 Hello world 2 A1 Hello world 123 3 A1 World hello hi 4 B1 Quick fox jumped 5 B1
  • 在Vue中将多个事件绑定到v-on指令

    在 jQuery 中 您可以通过执行以下操作来绑定多个事件 myDiv on touchstart mousedown more code here 据我了解 这会监听touchstart OR mousedown同时地 但我不知道如何用
  • 将单词转换为字符列表[重复]

    这个问题在这里已经有答案了 我可以将一个句子分成单独的单词 如下所示 string This is a string with words string split This is a string with words 但我不知道如何将单
  • 从 formatCurrency 中删除货币符号

    我正在尝试格式化从数据库获取的收入总额 并使用 php 的 NumberFormatter 类和 formatCurrency 方法 但是 我不想用这个打印出实际的欧元 欧元符号 我只想要简单的数字 带有逗号和小数点 例子 1234 56
  • 手电筒相机2 API

    Android Camera2 API 中可以同时使用相机预览和手电筒吗 当我尝试使用时CameraManager setTorchMode String cameraId boolean enabled 当相机未打开时它工作正常 但是当相
  • 将 Javascript 回调传递给 Qml 中的 C++ 调用方法

    在 C 中 我有一个带有可调用函数的类 我想做的是从 QML Javascript 调用该方法 我已经开始工作 并向其传递一个 Javascript 回调 在代码中 我定义我的类如下 class MyObject public QObjec
  • Rails - AJAX 模态对话框?

    我有兴趣学习如何 AJAX 模式对话框 通常 如果我想向网站添加模式对话框 我会在主 JS 文件中添加 jquery UI 对话框代码 并将其绑定到 ID 我相信使用 Rails 我可以创建一个链接 它从服务器获取所有对话框代码 然后打开对
  • 将 TBytes (UTF-16) 转换为字符串的最佳方法是什么?

    在 Delphi 2009 中将声明为 TBytes 的字节数组转换为 unicode 字符串的最佳方法是什么 在我的特定情况下 TBytes 数组已经具有 UTF 16 编码数据 每个字符 2 个字节 由于 TBytes 不存储空终止符