背景故事:我一直在嘗試在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上。