我正在研究一种需要将数组密钥保存为base64编码的解决方案。
虽然它目前运行良好,我想知道base64(utf-8)编码是否有任何会破坏$ _SESSION的字符?
答案 0 :(得分:0)
Base64创建字母数字字符和" +"," /"和" ="。没有括号,因此不应该有问题。
答案 1 :(得分:0)
$ _SESSION能够保存任意数据,只要它们可以被PHP序列化/非序列化(大多数数据都可以)。它可以处理任意字符,因为会话数据存储在文件中,文件可以处理它们。实际上你甚至不必亲自调用serialize/ unserialize
函数,PHP会为你做这些。
问题归结为PHP中允许哪些字符作为数组键,答案是,如果它是字符或整数,则允许使用。
答案 2 :(得分:0)
没有。 Session将它存储为一串字符。
只需确保您已启用php-mbstring
扩展程序。编辑您的php.ini文件以使用default_charset = "utf-8"
。
对于浏览器输出,您可以使用php标头功能
header('Content-Type: text/html; charset=utf-8');
或 你可以在你的html中指定编码
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">