我想採取可能包含特殊字符和emojis的UITextField的內容,並將其轉換爲我可以傳遞給PHP服務的GET請求。NSString與表情符號/表情符號網址編碼
如果我根本不編碼字符串,emojis顯示得很好(我可以在數據庫中看到它們,它們會正確回到我身邊)......但是如果我添加特殊字符(〜!@ $%等)GET請求扼流器。
於是我運行通過URL編碼字符串:
[commentText stringByAddingPercentEscapesUsingEncoding:NSNonLossyASCIIStringEncoding];
我使用NSNonLossyASCIIStringEncoding拿到表情符號,方法正確,它的工作原理,但以此來編碼返回一個字符串爲零。實際上,唯一不會返回零的編碼是UTF8,但是這會使用百分比轉義率覆蓋表情符號unicode。
我該怎麼做?我是否必須爲這種情況編寫自己的字符串替換項,或者是否有iOS方式來執行此操作,而我沒有看到?
乾杯,
克里斯
'NSNonLossyASCIIStringEncoding'明確_如果返回零,則不工作。至於'NSUTF8StringEncoding',「_...用百分比escapes_來表達emoji unicode_」。這正是轉義百分比所做的。你期望發生什麼? – neilco
我需要一些能夠保持完整的unicode位完好無損,同時逃避將阻止GET請求通過的事物。 UTF8接受和逃避表情符號unicode中的字符,導致其無法使用。對於這三個emojis()UTF8編碼將它們轉換爲(%F0%9F%98%84%F0%9F%98%98%F0%9F%98%B3)。 – Raconteur
使用NonLossyASCII進行編碼可使它們保持不變。 – Raconteur