抱歉上面说错了一点点,还是需要进行转换的,所作的转换其实是ansistring和widestring的转换
假设: AnsiS是你接收到的内容, WideS是最终结果
var
AnsiS: string;
WideS: widestring;
begin
setlength(WideS, length(AnsiS) div 2);
move(AnsiS[1], WideS[1], length(AnsiS));
// 不能用WideS := AnsiS进行转换, 因为AnsiS中2个字符才等于WideS中一个字符,
// 直接用:=赋值的话,编译器会将AnsiS中每个字符都转成两个字符存进WideS中。
// 所以只能用move来欺骗编译器了
....;
end;
至于怎么识别汉字和西文字符这不是问题。 因为widestring中汉字和西文字符一样, 都占
2个字节。 比如:
WideS[1]='汉'
WideS[2]='1'