背景故事:我一直在尝试在Symfony2应用程序中实现DynamoDB会话句柄。PHP会话字符串包含奇怪的空白/空字符
当会话保存到DynamoDB时,我遇到了一个绊脚石。看起来,来自PHP的字符串是一些奇怪的编码,它包含不是空格的空白字符,这会阻止字符串正确保存在DynamoDB中。当我将它粘贴到PhpStorm时,该字符串也不会很好玩。
这里是它的一个样本: $illegalString = 's:8:"userData";O:27:"\SomeClass":49:{s:8:"�*�email";s:27:"[email protected]";s:13:"�*�first_name";s:4:"Greg";';
以供参考,在这里是从PhpStorm的屏幕截图显示,这不是空白。 另外,如果我试图四处移动我的光标放在这些字符,其他字符开始出现,下面我的光标在图像中第1行的几个空格,最后分号的左边,引号呢不存在于字符串中,但由于某种原因,当我的光标在其上时出现。
如果你复制/粘贴上面的字符串到下面的网站,它打破了页:http://www.asciivalue.com/index.php
三个问题:
- 什么不对这个字符串?它是什么样的时髦编码?
- 为什么PHP以这种方式处理会话字符串?
- 如何让PHP在创建会话字符串时仅使用UTF-8?
注意:这只出现在使用最新的Linux AMI的AWS ec2上。