2Pascal-新时代的Pascal

 找回密码
 立即注册
搜索
热搜: fastreport
楼主: wang_80919
打印 上一主题 下一主题

字符串 编码 和 跨平台 讨论 01

[复制链接]

0

主题

5

帖子

32

积分

新手上路

Rank: 1

积分
32
楼主
发表于 2015-8-6 15:59:58 | 显示全部楼层
京东购书支持本站
本帖最后由 soguifan 于 2015-8-7 08:28 编辑

[mw_shl_code=delphi,false]
Edit1.Text :='提交';
Edit2.Text:=httpencode(edit1.Text) ; //UTF8 urlencode结果为  %E6%8F%90%E4%BA%A4
Edit3.Text:=Tnetencoding.URL.Encode(edit1.Text);//UTF8 urlencode结果为  %E6%8F%90%E4%BA%A4
//Edit4.Text :=Tnetencoding.url.EncodeBytesToString( Tencoding.GetEncoding(936).getbytes(edit1.Text));//错误No mapping for the Unicode character exists in the target multi-byte code page.
//Edit4.Text :=Tnetencoding.url.encode(Tencoding.ansi.GetString(Tencoding.GetEncoding(936).getbytes(edit1.Text)));//UTF8 urlencode结果为  %E6%8F%90%E4%BA%A4
//请问怎么在Android显示GB2312结果为%cc%e1%bd%bb
[/mw_shl_code]


www.soguifan.com
回复 支持 反对

使用道具 举报

0

主题

5

帖子

32

积分

新手上路

Rank: 1

积分
32
沙发
发表于 2015-8-10 09:35:08 | 显示全部楼层
京东数码购物支持本站
本帖最后由 soguifan 于 2015-8-10 09:36 编辑
wang_80919 发表于 2015-8-7 09:31
Input: TBytes;

  SetLength(Output, SM4_BLOCKSIZE);

本人不是学计算机的,工作也与计算机无关,Delphi只是业余爱好而已。wang_80919(Flying Wang)大神所说的“太过低级”的问题,看了上边的讨论[答案就是 使用 THttpEncdong.Url.Encode(TBytes 版本的参数); (很早之前,我们自己研究出的答案)],本人菜鸟还是没看明白,THttpEncdong也不知道是什么东东,最后自己写了个函数,完成了汉字转GB2312 Urlencode。[mw_shl_code=delphi,false]
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;
[/mw_shl_code]

www.soguifan.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|新时代Pascal论坛

GMT+8, 2024-5-18 20:11 , Processed in 0.056968 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表