0

我是 iPhone 开发的新手。我正在开发一个聊天应用程序。我在发送和接收一些特殊字符时遇到问题。最后,我成功发布并获得了这个特殊字符。现在,我只有一个特殊字符我无法得到它。当我将 % 发送到网络服务时,我得到 %25。

在将字符串发送到网络服务器时使用波纹管字符串..

NSString *string = @"Hello % How Are You?";
string = [string stringByReplacingOccurrencesOfString:@"%" withString:@"%25"];
NSLog(@"\n\n ===>> Before ==>> %@",string);
NSString *string2 = string;
string2 = [string2 stringByReplacingOccurrencesOfString:@"%25" withString:@"%"];
NSLog(@"\n\n ===>> After ==>> %@",string2);

输出 =>

===>> Before ==>> Hello%2520%2525%2520how%2520are%2520you?

 ===>> After ==>> Hello %2526 How Are You?
4

1 回答 1

2

试试这个代码...

NSString *string = @"Hello % How Are You?";

string = [string stringByReplacingOccurrencesOfString:@"&" withString:@"&"];
string = [string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
string = [string stringByReplacingOccurrencesOfString:@"&" withString:@"%26"];
NSLog(@"\n\n ===>> Before ==>> %@",string);

NSString *string2 = string;

string2 = [string2 stringByReplacingOccurrencesOfString:@"%20" withString:@" "];
string2 = [string2 stringByReplacingOccurrencesOfString:@"%26" withString:@"&"];
string2 = [string2 stringByReplacingOccurrencesOfString:@"%25" withString:@"%"];    
NSLog(@"\n\n ===>> After ==>> %@",string2);

输出是:

===>> Before ==>> Hello%20%25%20How%20Are%20You?
====>> After ==>> Hello % How Are You?
于 2013-04-18T11:41:06.570 回答