IOS 将 URL 字符串转换为 NSString? [英] IOS Convert URL string to NSString?

查看:67
本文介绍了IOS 将 URL 字符串转换为 NSString?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在将 URL 字符串 转换为 NSString 时遇到问题,我将其从 XML 文件中提取.

I have a problem to convert an URL string, which I extract from XML file to NSString.

URL 字符串是这样的,看起来很奇怪,但它是URL格式.

The URL string look like this, it looks like odd but it is URL format.

%3CTEXTFORMAT%20LEADING%3D%222%22%3E%3CP%20ALIGN%3D%22LEFT%22%3E%3CFONT%20FACE%3D%22Arial%22%20SIZE%3D%2212%22%20COLOR%3D%22%23000000%22%20LETTERSPACING%3D%220%22%20KERNING%3D%220%22%3E%u53F0%u5317%u7E2323141%u65B0%u5E97%u6C11%u6B0A%u8DEF130%u5DF714%u865F5%u6A13%3C/FONT%3E%3C/P%3E%3C/TEXTFORMAT%3E

但是,当我使用 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding 方法时,它返回 nil.

However, when I use stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding method, it return nil.

经过一些实验和研究,似乎这个 URL 包含 %u 导致转换 URL 和这个 %u 看起来像 unicode,但是,我尝试删除所有 %u 然后 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding 方法返回一个正确的字符串,没有任何问题.

After some experiment and research, seems this URL contain %u cause problem while converting URL and this %u looks like unicode, however, I try to remove all %u then stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding method return a proper string without any problem.

有谁知道如何正确地将这个 URLstring 转换为 NSString?

Does anyone know how can I convert this URLstring to NSString properly?

推荐答案

您的 urlString 中是 Unicode 汉字,这就是它不转换的原因.

It is Unicode han characters in your urlString thats why it is not converting.

将 %u 替换为 \u,您将获得字符串.

Replace %u to \u and you will get your String.

NSString *str=@"%3CTEXTFORMAT%20LEADING%3D%222%22%3E%3CP%20ALIGN%3D%22LEFT%22%3E%3CFONT%20FACE %3D%22Arial%22%20SIZE%3D%2212%22%20COLOR%3D%22%23000000%22%20LETTERSPACING%3D%220%22%20KERNING%3D%220%22%3E%u53F0%u5317%u7E2323141%u65B0%u5E97%u6C11%u6B0A%u8DEF130%u5DF714%u865F5%u6A13%3C/FONT%3E%3C/P%3E%3C/TEXTFORMAT%3E";
str=[str stringByReplacingOccurrencesOfString:@"%u" withString:@"\\u"];
NSString *convertedStr=[str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"converted string is %@ \n",convertedStr);

输出:---------------

output :---------------

converted string is <TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="Arial" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\u53F0\u5317\u7E2323141\u65B0\u5E97\u6C11\u6B0A\u8DEF130\u5DF714\u865F5\u6A13</FONT></P></TEXTFORMAT>

有关更多信息,请关注此url
这是中文unicode字符这里有一些代码可以证明这一点:

for more Info follow this url
This is chinese unicode char here is some code that will prove it:

NSString *newStr=@"\u53F0\u5317\u7E2323141\u65B0\u5E97\u6C11\u6B0A\u8DEF130\u5DF714\u865F5\u6A13";
NSLog(@"chinese string is %@",[newStr stringByReplacingPercentEscapesUsingEncoding:NSUTF16StringEncoding]);

输出:----------------------台北县23141新店民权路130巷14号5楼

output:---------------------- 台北縣23141新店民權路130巷14號5樓

去谷歌翻译转换这个字符串会给你某人的地址.如:-

go to google translate converting this string will give you someone's address. as :-

市民台北县新店23141路130号14弄5楼

这篇关于IOS 将 URL 字符串转换为 NSString?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆