【发布时间】:2015-01-30 07:22:04
【问题描述】:
我正在尝试向服务器创建 HTTP 发布请求。部分post参数是德国电影片名如
Cowboys & Aliens
或
Das süße Leben
当我的浏览器发布请求时,将发布为
Cowboys+%26+Aliens
和
Das+s%FC%DFe+Leben
我不知道这是什么类型的编码,以及如何在 perl 中重现它。
有人可以帮忙吗?
【问题讨论】:
-
它叫URL encoding,可以使用this模块。这花了我整整 10 秒的谷歌搜索,下次先试试。
-
@Biffen,对不起,如果我没有说清楚,但我一直在使用 URI::Escape,并且之前用谷歌搜索过 - 这是基本的礼仪。我从这里开始stackoverflow.com/questions/13163937/decode-utf-8-url-in-perl,但努力寻找一种方法来一致地编码/解码两个字符串
-
您应该在问题中提到这一点。那么,您目前的问题是什么?
-
这只是一个猜测,但是第二个字符串在 Perl 文件中的编码方式是否存在问题?字符 ß 在 ISO 88591-1 中编码为 0xDF,但在 UTF-8 中编码为 0xC3 0x9F。也许问题可能是字节被转义,即。到 %C3%9F 而不是 UTF-8 代码点被映射回 ISO 8859-1 并表示为 %DF?
-
Biffen 链接到的 CPAN 文档讨论了保留字符,例如'&' 仅在您明确要求时才被编码 - 这是您需要查看的潜在问题吗?