我有一个基于 Drupal 字段中的数据设置的 cookie。当我使用 PHP 编写 cookie 时,扩展的 ASCII 字符显示为十六进制代码(例如 %7E),但如果我使用 JavaScript 编写类似的 cookie,则扩展的 ASCII 字符在 cookie 中显示为单个字符(例如 ~ )。
这是我想要在我的 cookie 中的字符串。
Section1~email,email.calendar,calendar.wordpresssml,wordpress.moodlesml,moodle.maharasml,mahara.gdrive,gdrive.eportfolio,eportfolioblogs.wiki,wiki.youtube,email.feature,feature|Section2~reader,reader|
如果我使用
setcookie("p", "Section1~email,email.calendar,calendar.wordpresssml,wordpress.moodlesml,moodle.maharasml,mahara.gdrive,gdrive.eportfolio,eportfolioblogs.wiki,wiki.youtube,email.feature,feature|Section2~reader,reader|", $expire);
我明白了 Section1%7Eemail%2Cemail.calendar%2Ccalendar.wordpresssml%2Cwordpress.moodlesml%2Cmoodle.maharasml%2Cmahara.gdrive%2Cgdrive.eportfolio%2Ceportfolioblogs.wiki%2Cwiki.youtube%2Cemail.feature%2Cfeature%7CSection2%7Ereader%2Creader%7C
而不是我想要的字符串。如果我使用 JavaScript 编写 cookie,它可以正常工作。我知道这是一个编码问题,但我真的希望 PHP 使用完整的扩展 ASCII 字符集来编写 cookie。