请教如何把utf-8转换成为字符 ( 积分: 50 )

  • 主题发起人 主题发起人 siso
  • 开始时间 开始时间
S

siso

Unregistered / Unconfirmed
GUEST, unregistred user!
我用下面的代码求字符串的utf-8
var i,n:integer;
var s:string;
begin
n:=length(edit1.text);
for i:=1 to ndo
s:=s+'%'+inttohex((ord(edit1.text)),0);
edit2.text:=s;
end;
例如: 周a 转化后为 %D6%DC%61
但现在我想把utf-8重新转换为字符,可如果是像%61这样的还可以把十六进制值 61 转化为
十进制值,再把十进制值用 char转换为字符。
可像 %D6%DC该如何转换成为字符 ‘周’呢?
请各位指点一下。谢谢!
 
我用下面的代码求字符串的utf-8
var i,n:integer;
var s:string;
begin
n:=length(edit1.text);
for i:=1 to ndo
s:=s+'%'+inttohex((ord(edit1.text)),0);
edit2.text:=s;
end;
例如: 周a 转化后为 %D6%DC%61
但现在我想把utf-8重新转换为字符,可如果是像%61这样的还可以把十六进制值 61 转化为
十进制值,再把十进制值用 char转换为字符。
可像 %D6%DC该如何转换成为字符 ‘周’呢?
请各位指点一下。谢谢!
 
请各位指点一下。谢谢!
 
自己做出来了,不用麻烦各位了。
 
bs 楼主 , 就想别人帮你, 自己做出来了也不共享一下 哈哈
 
chshanghai不要这样说我,我以为这种简单问题是我这种初学者才不懂,就不敢贴出来让人取笑了.既然你这么说,我就贴出来了.
实现utf-8转换成字符
procedure TForm1.Button5Click(Sender: TObject);
var i,n:integer;
var s:string;
begin
n:=length(edit1.text);
i:=2;
while i<=ndo
begin
s:=s+char(strtoint('$'+copy(edit1.text,i,2)));
i:=i+3;
end;
edit2.text:=s;
end;
例如%77%77%77%2E%74%65%73%74%31%32%33%2E%63%6F%6D%3F%6E%61%6D%65%3D%27%CA%B5%D1%E9%D5%DF%27
转成字符为www.test123.com?name='实验者'
 
以前很多这样的问题,翻翻贴子就有了。
 
后退
顶部