Delphi String 与wideString 的完美转换

转载 2016年08月30日 10:26:44

一般来说,String与widestring 的转换是系统自动进行的,但是,考虑如下字符串 s:=#2+#3+#0+#10+#0+#1+#164+#59;,显然S的长度为8,然后执行如下代码 var S,S2:string; I: Integer; WS:widestring; begin s:=#2+#3+#0+#10+#0+#1+#164+#59; showmessage(inttostr(Length(S))); //显示为8,正常 WS := S; showmessage(inttostr(Length(WS))); //显示为7。。。 S := WS; showmessage(inttostr(Length(S))); //显示为7。。。少了一位 造成这点的原因就在于,当字符的ascii码大于127的时候,widestring判断它为一个双字节的词(比如中文字符之类的) 完美转换的方法如下: //string to widestring
setlength(WS,Length(S));
for I := 1 to length(S) do // Iterate
begin WS[I]:= widechar(S[I]);
end; // for
//widestring to string
setlength(S2,Length(WS));
for I := 1 to length(WS) do // Iterate
begin S2[I]:= char(WS[I]);
end; // for
showmessage(inttostr(Length(S2)));
if S=S2 then showmessage('OK');
注意的是,s=s2,但是 s<>ws 因为现在很多COM接口什么的都是Widestring类型的,假如要传递用16进制写的字符串的话,容易造成丢失字节,用这种办法就可以解决这个问题了,但是要记得是,这2个函数要配套使用!

相关文章推荐

Delphi中String与WideString的区别

AnsiString delphi缺省字符串类型 WideString 功能上类似于AnsiString,但它是由WideChar字符组成的,也就是。 Str1:string;// 编译器认...

delphi StringToWidestring

function  StringToWidestring(Source:string):WideString;varLen  : Integer;beginLen := MultiByteToWide...

Delphi中WideString与String的区别

导读:   Delphi中WideString与String的区别   2006-05-21 20:24:00 / 个人分类:编程技巧   有谁能说出这两个类型的区别吗?后来大脚兄解释说:WideSt...

Delphi7及其以下版本的 VCL 只支持 Ansi, 所以... WideString 与 UTF8String (定义与 AnsiString 相同) 并没有办法正确的在 VCL 中显示 Del

Delphi7及其以下版本的 VCL 只支持 Ansi, 所以... WideString 与 UTF8String (定义与 AnsiString 相同) 并没有办法正确的在 VCL 中显示 ...

WideString 还是 AnsiString ?谈谈字符编码

http://www.delphibbs.com/delphibbs/dispq.asp?lid=3349991 问题:WideString 还是 AnsiString ?谈谈字...

Delphi实现AnsiString与WideString的转换函数

在Delphi下,AnsiString 和 WideString 的存储与管理各有不同,这里提供互相转换的函数一对。 /// Wide String -> Ansi String function W...
  • love3s
  • love3s
  • 2013-01-26 16:23
  • 6268

Delphi - 字符串 详解

AnsiString 和 WideString的区别. 好这里先留给大家想想,我讲完了,大家就应该知道了.嘿嘿. 首先分类: 1 ShortString,可以容纳255个字符,主要为了老版本兼容...

Delphi 的字符及字符串[1] - string、AnsiString、WideString、String[n]、ShortString

====================================================== 注:本文源代码点此下载 =============================...

delphi pchar char byte string转换问题

注:Delphi中的Char,PChar,PByte,Byte,String的相互转换,您是不是也遇到过,为此头疼过吗?你要是明白了他们的原理就会轻松了。 话题064840的标题是: Q:关于PCh...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)