0

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

4

2 回答 2

1

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

只需将脚本的字符集设置为 windows-1256 就可以了。

于 2012-09-08T13:44:56.650 回答
0

很可能不是base64_encode()函数造成了您的问题,而是之前的处理:请记住,字符串需要2 个成分来保存有意义的文本:encoding 和 bytestream。从 base64 编码的值来看,您丢失了字符串上的 UTF8 编码,将其转换为一些 Windows 代码页编码。

于 2012-09-08T13:45:49.747 回答