首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP解码GB2312

PHP解码GB2312
EN

Stack Overflow用户
提问于 2010-12-30 10:49:00
回答 2查看 5.6K关注 0票数 0

我正在编写一个IMAP电子邮件脚本,我有几行代码是用GB2312编写的(我假设这是中文编码),看起来像这样的=?GB2312?B?foobarbazetc

如何开始使用此字符串?我查了一下mb_list_encodings(),这个没有列出来。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-30 11:08:37

如果您有base64解码的数据,则使用mbstring或iconv。如果您有原始标头,则使用mbstring。

代码语言:javascript
复制
<?php
$t = "\xc4\xe3\xba\xc3\n";
echo iconv('GB2312', 'UTF-8', $t);
echo mb_convert_encoding($t, 'UTF-8', 'GB2312');

mb_internal_encoding('UTF-8');
echo mb_decode_mimeheader("=?gb2312?b?xOO6ww==?=");
?>
票数 6
EN

Stack Overflow用户

发布于 2010-12-30 11:46:45

Ignacio用mb_decode_mimeheader()解决了问题的核心,但对于将来的参考,这些链接也很有帮助:

  • http://developer.loftdigital.com/blog/php-utf-8-cheatsheet
  • http://www.herongyang.com/PHP-Chinese/PHP-UTF-8-Chinese-String-Literals.html

我正在使用的特定标头字符串:

代码语言:javascript
复制
$subject = "=?GB2312?B?tPC4tDogUXVvdGF0aW9uIFBJSSBwcm9kdWN0cyA=?= =?GB2312?B?Rk9CIFNoYW5naGFpIG9yIE5pbmdibyBwb3J0?="

这需要一个页眉

代码语言:javascript
复制
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

和PHP

代码语言:javascript
复制
mb_internal_encoding('utf-8');
echo mb_decode_mimeheader($subject)."<br />";

输出

代码语言:javascript
复制
主题: Quotation PII products FOB Shanghai or Ningbo port
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4559649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档