问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

delphi 中英文字符串与字节数组 互转

发布网友 发布时间:2022-04-26 09:27

我来回答

2个回答

热心网友 时间:2022-06-26 18:37

你的Delphi是不是Delphi2009以上的版本,如果是的话默认的String是WideString.你所说的7个字节的String事实上是AnsiString。方法一事实上可以简化为:

const
  str: AnsiString = '中文abc';
var
  buf: array of Byte; len: Integer;
begin
  //获取ansi字符串的长度
  len := Length(str);
  //设置buf数组的长度
  SetLength(buf,len);
  //复制数据到buf数组
  Move(str[1],buf[1],len);
end;

而复制buf的方法,就是上面方法的反操作:

const
  str: AnsiString = '中文abc';
var
  buf: array of Byte; len: Integer;

  astr: AnsiString; trgStr: String;
begin
  //获取ansi字符串的长度
  len := Length(str);
  //设置buf数组的长度
  SetLength(buf,len);
  //复制数据到buf数组
  Move(str[1],buf[1],len);

  //获取buf数组的长度
  len := Length(buf);
  //设置需要复制的Ansi字符串的长度
  SetLength(astr,len);
  //从buf数组复制数据
  Move(buf[1],astr[1],len);
  //将数据复制到trgStr字符串
  trgStr := astr;
  //显示trgStr
  ShowMessage(trgStr);
end;

热心网友 时间:2022-06-26 18:37

Delphi 的 string 本来就是单字节保存,显示的时候由操作系统画布自动区分中文英文,你直接按字节取出来就可以。中文字符双字节的每个字节的值都大于等于 $80 ,西文字符的字节的值都小于 $80 。追问

我用的是XE4,你说的很对,AnsiString类型能区别单双字节。学习了,3Q!!

你上面的代码,buf 下标应该从0开始吧,你可以调试看看。。。

 Move(str[1],buf[0],len);

//你的代码很整齐

追答给你一个链接,希望有帮助。http://www.cnblogs.com/baoquan/articles/1027371.html

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
泰勒公式有哪些常见形式? 空调室内风机怎样工作 什么是县级以上医院 关于聚金宝 买白银问题 平安银行个人贵金属交易业务有哪些? 网易云音乐为什么歌这么少? 公路边种的有什么花 高速路上常用的绿化花卉有那些? 公路绿化用什么花 我一键开核后顺利进入WIN7 系统,可是一开网站就重启是怎么回事,我开6... 截取中英文字符串 《最终幻想14》中“ot”是什么意思? 利用PHP函数计算中英文字符串长度的方法 php中英文字符串为什么能比较大小 vbs如何实现中中英文字符串的比较.为什么vbs读取中文字符串出现乱码? 呢称为二到十二位中英文字符或数字是什么请于个例子 php分割中英文字符串的几种方 oracle 正则表达式标点符号是否区分中英文符,以及所占字符长度!_百度... 中英文字符怎么样输入? 什么叫中英文字符 ...视频不带水印?可以合成照片做视频的那种,不要vue,vue有水印。_百度... 请问Vue2014的水印去除 人24小时要睡多少小时的觉 中国人4种睡觉姿势,你睡对了吗 睡眠可分哪几种类型 康佳电视系统升级到17年版本之后,再也不升级了,无法投屏怎么办? 正常人的睡眠类型有几种? 康佳电视今天老是显示系统更新,求解决,谢谢 睡眠分为哪几种类型? 怎么做到24小时都睡觉 中英文字符是如何保存到计算机中的? 电脑键盘上中英文符号一样是怎么回事 请教:JAVA中英文字符串截取的问题 java中 怎么计算中英文字符串混合的长度 oracle 如何计算中英文混合字符串占用的字节 PHP 中如何获得中英文混合字符串长度 松花蛋外面的糠皮怎么弄掉 B2B平台和B2C平台是什么?有什么用处 松花蛋外面裹的是什么东西?看起来像石灰 为什么皮蛋外面还弄一层蜡在上面? B2B 还是B2C? 哪个好 皮蛋外面包的一层是什么东西啊? 松花蛋储存把外,面那层石灰拨去还是不拨好? 在超市里买的松花皮蛋如何快速去掉外面的一层泥 松花蛋,又称皮蛋,是我国传统的风味蛋制品,某化学小组的同学发现制作好的松花蛋外面包裹着一层坚硬的外 为什么自制的松花蛋外面的石灰干不了? 松花蛋外面的泥灰料的配料有纯碱、食盐、生石灰、草木灰,用水将它们混合包在蛋壳外面,这个过程中发生的 松花蛋外面的泥可以养花吗 大型的B2C B2B网站有哪些 为什么皮蛋的外面那层会有像雪花一样的东西,那是什么物质