低版本delphi 处理unicode
1
function CopyW(ws: WideString; Start, Len: integer): WideString;
2
var
3
wslen: integer;
4
sp: PWideChar;
5
begin
6
if Start < 1 then start := 1;
7![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
if Len < 1 then begin result := ''; exit; end;
9![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
wslen := lstrlenw(PWideChar(ws));
11
if wslen < (Start + Len - 1) then
12
len := wslen + 1 - Start;
13![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
result := stringofchar(' ', Len);
15
sp := PWideChar(ws);
16
Inc(sp, Start - 1);
17
CopyMemory(PWideChar(result), SP, len * 2);
18
end;
低版本的delphi 处理Unicode 很麻烦,不可以用任何与string相关的函数,就是说,所有的控件,字符串函数得自己重写![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)