这个是一个快速的:
cookie名称和值中允许的字符是什么?它们与URL或某些常见子集相同吗?
我要问的原因是,我最近发现了一些奇怪的行为,其中包含-名称中的cookie,我只是想知道它是否是浏览器特定的,或者我的代码是否有问题.
我是HTTP相关事务的新手.我的问题是在iOS开发中,我想使用HTTP Header发送一个字符串,所以我正在使用:
[httpRequest setValue:@"nonEnglishString" forHTTPHeaderField:@"customHeader"];
Run Code Online (Sandbox Code Playgroud)
接收服务器是Python(Google App Engine),使用以下命令将数据库中的字符串值保存为StringProperty:
dataEntityInstance.nonEnglishString = unicode(self.request.headers.get('customHeader')
Run Code Online (Sandbox Code Playgroud)
但问题是,当我尝试发送像韩语这样的非英语字符串时,它会保存在HTTP标头中,如下所示:
Customheader = "\Uc8fc\Uba39\Uc774 \Uc6b4\Ub2e4";
Run Code Online (Sandbox Code Playgroud)
当它被Google App Engine收到并保存在DataStore中时,它会改为:
??? ??
Run Code Online (Sandbox Code Playgroud)
好像它找不到unicode值的正确字符.
使用HTTP标头发送非英语字符串是不可能的还是允许的?
如果我的iOS只使用setHTTPBody,它可以传输非英文字符串并正确保存到App Engine的DataStore.
[httpRequest setHTTPBody:[httpBody dataUsingEncoding:NSUTF8StringEncoding]];
Run Code Online (Sandbox Code Playgroud)
但我找不到使用HTTP Headers实现相同目标的正确方法,就像Foursquare所做的许多API一样,并在基于Python的Google App Engine的DataStore中以正确的形式保存字符串
任何人都可以帮助我理解如何存储另一种语言的cookie值,以及如何以该语言再次检索它.
在存储后检索时,我的外语cookie似乎变成了垃圾.
一些代码:
写cookie代码:
function writecook() {
document.cookie = "lboxcook=" + document.getElementsByTagName('input')[0].value;
//input[0] is the input box who's value is stored
}
Run Code Online (Sandbox Code Playgroud)
检索Cookie代码:
<script language="JavaScript">
function get_cookie ( cookie_name )
{
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
</script>
Run Code Online (Sandbox Code Playgroud)
谢谢.