2015-05-12 26 views
1

我有一个字符串,像这样:ASP.NET将字符串拆分成不能从objective-c工作的数组?

~SEWER/FLATWORK SUPPLY & INSTALL - 25% of CONTRACT*~SEWER/FLATWORK SUPPLY & INSTALL - 75% of CONTRACT*SUMP PUMP PIT

,这是从这个未来:

string Items = Request.QueryString["Items"]; 

,然后我把这个字符串并通过*字符分割:

var ItemsArray = Items.Split('*'); 

但ItemsArray只返回:

~SEWER/FLATWORK SUPPLY 

下面是一些有趣的事情,串项返回:〜下水道/烫平供应量也:

这里是长什么样的项目,如在URL:

Items=~SEWER/FLATWORK%20SUPPLY%20&%20INSTALL%20-%2025%25%20of%20CONTRACT*~SEWER/FLATWORK%20SUPPLY%20&%20INSTALL%20-%2075%25%20of%20CONTRACT*SUMP%20PUMP%20PIT 

我在objective-创建这个项目ç像这样:

[Items appendString:[object objectForKey:@"Items"]]; 
[Items appendString:@"*"]; 
[Items deleteCharactersInRange:NSMakeRange([Items length]-1, 1)]; 
//This returns this: ~SEWER/FLATWORK SUPPLY & INSTALL - 25% of CONTRACT*~SEWER/FLATWORK SUPPLY & INSTALL - 75% of CONTRACT*SUMP PUMP PIT 

//add Items to URL 
NSString *fullURL = [NSString stringWithFormat:@"https://example.com?Items=%@, [Items stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

我期待的阵列返回,像这样:

~SEWER/FLATWORK SUPPLY & INSTALL - 25% of CONTRACT 
~SEWER/FLATWORK SUPPLY & INSTALL - 75% of CONTRACT 
SUMP PUMP PIT 

这里怎么回事?

+0

问题是,'空间和space'是'%20%20',但应'%20%26%20'以防止解析为查询字符串参数 –

+0

我将如何执行@AlexK。 – user979331

+0

你会改变url编码,使它在你的obj-c代码中编码'&',我不知道那种语言。 –

回答

1

首先你需要删除HTTP编码,然后你可以拆分你的字符串。尝试以下方法。 您需要添加两个命名空间:System.Web程序& System.Text.RegularExpressions

string Items = Request.QueryString["Items"]; 
Items = HttpUtility.UrlDecode(Items); 
string[] ItemsArray = Regex.Split(Items, "*"); 

希望这有助于你...