2014-10-31 68 views
0

發送Unicode字符時Apigee似乎否認這些字符。將Unicode字符發送到Apigee

值輸入到NSDictionary的還好用下面的代碼:

NSMutableDictionary *entity = [[NSMutableDictionary alloc] init ]; 
textView.text = @"È ê ü à ã" 
NSString *message = [NSString stringWithUTF8String:[textView.text cStringUsingEncoding:NSUTF8StringEncoding]]; 

[entity setObject:@"messages" forKey:@"type"]; 
[entity setObject:message forKey:@"message"]; 

AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate]; 
ApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity]; 

如果我的NSLog的的NSDictionary我看到:

{ 
    type = messages; 
    message = "\U00c8 \U00ea \U00fc \U00e0 \U00e3"; 
} 

發佈這Apigee,成功響應返回後不特殊字符:

{ 
    type = messages; 
    message = "E e u a a"; 
} 

如何防止NSDictionary fr om編碼這些字符並允許Unicode字符保存到Apigee中?

+0

正如以前所做的那樣,您將NSLog的輸出與字典的內容混淆了。 NSLog只輸出ASCII字符,並按照喜歡的方式顯示非Unicode字符。 – gnasher729 2014-11-03 09:50:19

+0

如果我的NSLog'實體[@「message」]'返回''Èêüà',但NSLog整個字典返回''\ U00c8 \ U00ea \ U00fc \ U00e0 \ U00e3「'。在發佈後,我收到了Apigee返回的響應,我看到「E e a a a」,所以我不確定這些字符在哪裏更改,忽略NSLog。 – 2014-11-03 10:41:59

回答

1

此問題已在最新的Apigee 2.0.14版本中解決。

0

你有沒有試過用cURL這樣更直接的東西來測試它?只是爲了確保它不是iOS SDK的問題?換句話說,如果你仍然看到cURL的問題,那麼服務器端堆棧會出現問題。如果您沒有看到問題,那就是SDK。

+0

我想過這個。存儲的響應是:'message = \「\\ U00c8 \\ U00e1 \\ U00fc \\ U00fb \」; type = messages;'所以我會假設NSDictionary正在改變字符的格式,而不是像我希望的那樣將其存儲爲''Èêê'àà'。 – 2014-11-05 16:30:48