iphone - [NSURL URLWithString:stringContainingSpecialCharacters] -


say, have address bar uitextfield called textfield, , uiwebview named webview. of time follow code works:

[webview loadurl:[nsurl urlwithstring:textfield.text]]; 

when put in long string special characters, urlwithstring: returns null. readability bookmarklet example:

javascript:(function(){readconvertlinkstofootnotes=true;readstyle='style-newspaper';readsize='size-medium';readmargin='margin-wide';_readability_script=document.createelement('script');_readability_script.type='text/javascript';_readability_script.src='http://lab.arc90.com/experiments/readability/js/readability.js?x='+(math.random());document.documentelement.appendchild(_readability_script);_readability_css=document.createelement('link');_readability_css.rel='stylesheet';_readability_css.href='http://lab.arc90.com/experiments/readability/css/readability.css';_readability_css.type='text/css';_readability_css.media='all';document.documentelement.appendchild(_readability_css);_readability_print_css=document.createelement('link');_readability_print_css.rel='stylesheet';_readability_print_css.href='http://lab.arc90.com/experiments/readability/css/readability-print.css';_readability_print_css.media='print';_readability_print_css.type='text/css';document.getelementsbytagname('head')[0].appendchild(_readability_print_css);})(); 

according this answer, can use stringbyaddingpercentescapesusingencoding escape string, , indeed works fine case.

my question is: is safe call stringbyaddingpercentescapesusingencoding: before passing string webview? following have consequences?

[webview loadurl:[nsurl urlwithstring:[textfield.text stringbyaddingpercentescapesusingencoding:nsutf8stringencoding]]] 

thanks!

edit: mean 'safe' while works urls containing unicode characters, still work fine 'normal' urls?

edit 2: if 'safe', why isn't default behaviour?

since there's no other answers question, decided use following - (nsurl *)urlvalue method instead of - (nsurl *)urlwithstring: safe measure:

- (nsurl *)urlvalue {     nsurl *url = [nsurl urlwithstring:self];      if (url) return url;      return [nsurl urlwithstring:[self stringbyaddingpercentescapesusingencoding:nsutf8stringencoding]]; } 

Comments

Popular posts from this blog

java - SNMP4J General Variable Binding Error -

windows - Python Service Installation - "Could not find PythonClass entry" -

Determine if a XmlNode is empty or null in C#? -