android gb2312 utf8,Delphi XE8安卓下汉字转Gb2312 urlencode代码(原创)

Delphi XE8安卓下汉字转Gb2312 urlencode代码

在Android下汉字转GB2312 urlencode时候,如果使用下边代码:

Edit2.Text :=Tnetencoding.url.EncodeBytesToString( Tencoding.GetEncoding(936).getbytes('提交'));//会提示错误No mapping for the Unicode character exists in the target multi-byte code page.

Edit2.Text :=httpencode('提交');// urlencode结果为 %E6%8F%90%E4%BA%A4 ,此为UTF8转换结果

Edit2.Text :=Tnetencoding.URL.Encode('提交'); //urlencode结果同样为%E6%8F%90%E4%BA%A4

那么问题来了,怎么在Android显示GB2312的转换结果%cc%e1%bd%bb呢?

参考代码

function MyUrlEncode(const input: string): string; // 汉字转Gb2312 urlencode

var

S: string;

Stream: TStringStream;

B: Byte;

begin

Result := '';

S := '';

try

Stream := TStringStream.Create(input, TEncoding.GetEncoding(936));

for B in Stream.Bytes do

S := Format('%s%%%.2x', [S, B]);

finally

Stream.Free;

end;

Result := S;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Edit1.Text := '提交';

Edit2.Text := MyUrlEncode(Edit1.Text); // 结果 %cc%e1%bd%bb

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值