String 与wideString 的完美转换
来源:互联网 发布:鬼怪服装知乎 编辑:程序博客网 时间:2024/05/22 03:12
一般来说,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个函数要配套使用!
- String 与wideString 的完美转换
- Delphi String 与wideString 的完美转换
- 三层开发中String与WideString的转换
- Delphi中WideString与String的区别
- Delphi中String与WideString的区别
- string和WideString的区别
- [代码]Delphi实现AnsiString与WideString的转换函数
- Delphi实现AnsiString与WideString的转换函数
- Delphi String和wideString的区别
- Delphi 的字符及字符串[1] - string、AnsiString、WideString、String[n]、ShortString
- Delphi 的字符及字符串string、AnsiString、WideString、String[n]、ShortString
- Delphi 2010 char widechar ansichar string ansistring widestring shortstring的測試
- C# ArrayList 与 string、string[] 的转换
- ArrayList 与 string、string[] 的转换
- ArrayList 与 string、string[] 的转换
- C# ArrayList 与 string、string[] 的转换
- String^与string的相互转换
- ArrayList 与 string、string[] 的转换
- 黑金(20集)
- 黑洞(30集)
- Nokia系列手机上的一个手电筒J2ME程序(附源代码)
- 规范意识训练
- GMAT数学概念与名词总汇
- String 与wideString 的完美转换
- Java开发者必去的技术网站
- 有足迹了
- Eclipse及其插件下载网址大全
- OLAP
- MSCOMM完美发送接收string类型
- acegi reference 1.3节
- TCP/UDP Handle List [Zz]
- acegi ref 1.4~1.5