%5BNEWS%5D&这是啥问题编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了%5BNEWS%5D&这是啥问题编码相关的知识,希望对你有一定的参考价值。

参考技术A UrlEncode
将字符串以 URL 编码。
返回值: 字符串
函数种类: 编码处理
内容说明
本函数将字符串以 URL 编码。例如空格就会变成加号。Homepage 中 form 资料传送就是用 urlencode 编码后再送出。
ASP中的用法:
Server.URLEncode("[NEWS]&")
例:
<%
response.write Server.UrlEncode("[NEWS]&")
%>
php中的用法:
urlencode("[NEWS]&");
例:
<?
echo urlencode("[NEWS]&");
?>
JSP中的用法:
URLEncoder.encode("[NEWS]&");
<%
java.net.URLEncoder.encode("[NEWS]&");
%>

这是啥文本编码?

【中文标题】这是啥文本编码?【英文标题】:What's this text encoding?这是什么文本编码? 【发布时间】:2011-04-02 08:28:22 【问题描述】:

我使用 Python 的 imaplib 从 gmail 帐户提取邮件...但我收到了一封包含令人困惑的文本正文的电子邮件:

> RGF0ZSBldCBoZXVyZTogICAgICAgICAgICAgICAgICAgICAgICAgICAyMi8wOC8yMDEwIDE0
> OjMzOjAzIEdNVCBVbmtub3duDQpQcsOpbm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICAgICAgamFjaW50bw0KTm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICBjYXJ2YWxobw0KRS1NYWlsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

谁能帮我从我的电子邮件中读取这个文件...

谢谢

【问题讨论】:

顺便检查一下标题,你确定那里没有Content-Encoding: base64 标题吗? @Piskvor - 不会有,因为它实际上以 &gt; 为前缀,表示它是引用的回复文本。要么是写得不好的垃圾邮件,要么是一些编码不当的电子邮件客户端在回复中引用它之前没有取消 base64。 @Omnifarious:好点,没注意到。可以是任何一个,是的。 【参考方案1】:

它看起来像 base64。在 Python 中,您可以使用 base64.b64decodestr.decode('base64')

message = '''
RGF0ZSBldCBoZXVyZTogICAgICAgICAgICAgICAgICAgICAgICAgICAyMi8wOC8yMDEwIDE0
OjMzOjAzIEdNVCBVbmtub3duDQpQcsOpbm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgamFjaW50bw0KTm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYXJ2YWxobw0KRS1NYWlsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
'''

print message.decode('base64')

结果:

日期及时间:22/08/2010 14:33:03 GMT 未知 Prénom: jacinto 名称:卡瓦略 电子邮件:

é 看起来不正确。看来文本是用UTF-8编码的,所以你还需要解码UTF-8编码:

print message.decode('base64').decode('utf-8')

结果:

... 前言: ...

需要注意的另一件事是 Base64 编码的不同变体,它们用于值 62 和 63 的两个符号不同。使用 base64.b64decode 如果默认值不起作用,您可以指定这两个字符给你。

【讨论】:

OP 还挺幸运的,里面没有任何用户名/密码 :)【参考方案2】:

Mark 大部分是正确的,但它也是 UTF-8 编码的,正如“Prénom”中的\uc3a9 所证明的那样。

(我正试图弄清楚为什么我得到了正确的解码而 Mark 却没有得到相同的代码,但这是另一个问题。)

【讨论】:

也许你的终端默认设置为UTF-8? @Mark:是的,就是这样(每天学习一些东西(我妈妈说花时间伪造护照对我没有任何好处......))【参考方案3】:

它是 Base-64 UTF-8。这段特殊的文字说:

Date et heure:                           22/08/2010 14:33:03 GMT Unknown
Prénom:                                   jacinto
Nom:                                     carvalho
E-Mail:                                

【讨论】:

以上是关于%5BNEWS%5D&这是啥问题编码的主要内容,如果未能解决你的问题,请参考以下文章

编码问题

POST请求中的%5B和%5D代表什么?

这是啥文本编码?

这是PHP啥加密方式 如何解密?

为啥TSQL把“sofia”和“sofia”一样对待?这是啥字符串编码?

百分比编码保留字符