我是HTTP相關事宜的新手。 我的問題是在iOS開發,我想送使用HTTP頭一個字符串,所以我使用:如何使用HTTP標頭髮送非英文unicode字符串?
[httpRequest setValue:@"nonEnglishString" forHTTPHeaderField:@"customHeader"];
接收服務器的Python(谷歌應用程序引擎),在該數據庫保存字符串值模型StringProperty使用:
dataEntityInstance.nonEnglishString = unicode(self.request.headers.get('customHeader')
然而,問題是,當我嘗試發送非英語串喜歡韓國,它是保存在HTTP標頭是這樣的:
Customheader = "\Uc8fc\Uba39\Uc774 \Uc6b4\Ub2e4";
而當它是由谷歌應用程序引擎接收並保存在數據存儲,它的改變是這樣的:
??? ??
,如果它不能找到的Unicode值正確的字符。
是沒可能或允許發送使用HTTP頭非英文字符串?
如果我的iOS只使用setHTTPBody,它可以傳輸非英文字符串並保存到App Engine的數據存儲區正常。
[httpRequest setHTTPBody:[httpBody dataUsingEncoding:NSUTF8StringEncoding]];
但我只是找不到正確的方式在基於谷歌App Engine的數據存儲
你是什麼意思*(...)這是沒有意義的,因爲它們在RFC2047本身允許的定義(...)*? – 2017-10-04 13:34:18
RFC 2047第5部分規定,編碼字可以在RFC 822的「文本」,「註釋」和「短語」去處,但RFC 2616不是RFC 822系列標準,並且沒有符合這些標準的令牌。 (有一個TEXT標記,但它沒有被定義爲相同的。)它明確指出,它們不得以'引用字符串'進入;在RFC 2616中定義了一個非常類似的「帶引號的字符串」標記,這是您在實踐中最希望放置非ASCII字符的地方(因爲Content-Disposition和類似的參數化標題)。 – bobince 2017-10-12 21:16:05
無論如何,從標準的角度來看,現在已經清楚了:RFC 5987提供了在參數化標題中編碼非ASCII的標準方法,RFC 7230建議非傳統標題爲ASCII。 – bobince 2017-10-12 21:25:47