PHP base64_encode无法正常工作

时间:2012-09-08 13:40:47

标签: php base64

我在php中将数据编码为base64时遇到问题。我想使用base64_encode函数对我的邮件主题进行编码。但我没有得到预期的结果。我开始测试我的base64_encode函数。
当我用PHP转换'سلام'时,结果为'0 + HH4w ==',当我在http://www.base64encode.org/网站上测试相同的内容时,结果为'2LPZhNin2YU ='。 我试过base64_decode('2LPZhNin2YU ='),输出是'سلام'
有谁知道为什么会这样,我该如何解决?

2 个答案:

答案 0 :(得分:1)

'0 + HH4w =='是CP1256(a.k.a.Windows-1256 http://en.wikipedia.org/wiki/Windows-1256),而'2LPZhNin2YU ='是UTF8。

只需将脚本的charset设置为windows-1256,一切都应该没问题。

答案 1 :(得分:0)

很可能不是base64_encode()函数,即创建问题,而是之前的处理:请记住,字符串需要 2 成分来保存有意义的文本:编码和字节流。从base64编码的值判断,您在字符串上丢失了UTF8-Encoding,将其转换为某些Windows代码页编码。