如何在PHP中解码包含混合内容(拉丁语和UTF-8)的字符串
我有一个PHP脚本,可以读取电子邮件/usenet消息,我发现有一个例子,其中的文本是阿拉伯语和拉丁语的混合体,即如何在PHP中解码包含混合内容(拉丁语和UTF-8)的字符串,php,utf-8,Php,Utf 8,我有一个PHP脚本,可以读取电子邮件/usenet消息,我发现有一个例子,其中的文本是阿拉伯语和拉丁语的混合体,即 PHP和阿拉伯语单词 即 PHP和الساعة 问题是,文本是经过编码的,即 Some Text=?utf-8?b?RVByaW50cyBhbmQg2KfZhNi52LHYqNmK2Kk=?= 我的问题是当这个?utf-8?…与拉丁文本混合时,我如何解码 我使用的是PHP5.4.15它似乎是编码文本:尝试使用PHP函数base64\u decode $my_string = 'te
PHP和阿拉伯语单词
即
PHP和الساعة
问题是,文本是经过编码的,即
Some Text=?utf-8?b?RVByaW50cyBhbmQg2KfZhNi52LHYqNmK2Kk=?=
我的问题是当这个?utf-8?…
与拉丁文本混合时,我如何解码
我使用的是PHP5.4.15它似乎是编码文本:尝试使用PHP函数base64\u decode
$my_string = 'test string';
$res = base64_encode($my_string);
echo $res; //dGVzdCBzdHJpbmc=
echo base64_decode($res); // test string
事实上,解码字符串:
base64_decode("RVByaW50cyBhbmQg2KfZhNi52LHYqNmK2Kk=")
返回如下内容:
EPrints and العربية
您得到的是电子邮件中用于非US-ASCII编码文本的语法:
格式为:“=?字符集?编码?编码文本?=”
可以是注册到的任何字符集。通常,它与消息体是相同的字符集字符集
可以是表示与编码类似的Q编码的“Q”,也可以是表示编码的“B”编码
是Q编码或base64编码文本。 -编码字的长度不能超过75个字符,包括字符集、编码、编码文本和分隔符。如果希望编码的文本多于75个字符的编码字,可以使用多个编码字(由CRLFSP分隔)编码文本
EPrints和§§§§§§§¨217ØØØبØØبØبØØبب¨¨¨Ø¨Ø¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨代码('Content-type:text/html;charset=utf-8');
和解码后字符串echo base64_解码(“RVByaW50cyBhbmQg2KfZhNi52LHYqNmK2Kk=”);
谢谢,但正如我所说的,由于文本包含混合数据,我不能使用base64_解码(“RVByaW50cyBhbmQg2KfZhNi52LHYqNmK2Kk=”)
,而是base64_解码(“一些文本=?utf-8?b?RVByaW50cyBhbmQg2KfZhNi52LHYqNmK2Kk=?=”
,这会导致(?)转换失败非常感谢您!非常好的解释和修复,再次感谢!