IOS 将 URL 字符串转换为 NSString?

标签 ios string url nsstring

我在转换 URL string 时遇到问题,我从 XML 文件中提取到 NSString .

URL string看起来像这样,看起来很奇怪,但它是 URL格式。

%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。

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

有谁知道我该如何转换这个URLstringNSString适本地?

最佳答案

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

将 %u 替换为\u,您将得到您的字符串。

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);

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

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字符 这是一些可以证明这一点的代码:

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

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

转到谷歌翻译转换此字符串将为您提供某人的地址。 如:-

台北县新店23141路130巷14号5楼

关于IOS 将 URL 字符串转换为 NSString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16849271/

相关文章:

ios - 如何快速将相机 View 扩展到全屏 - UIImagePickerController

node.js - 在 NodeJS 查询字符串和请求模块中传递重音字符

php - 从 SELECT * FROM users WHERE url = "pretty url"开始,到使用 Lithium Framework 显示数据库中的 1 行

ruby-on-rails - 如何在不创建空字符串的情况下在 Ruby 中拆分文本?

javascript - Razor 代码在 JavaScript 字符串内创建新行

php - 来自 $_SERVER ['HTTP_REFERER' ] 的结果,当 referer header 未发送到服务器时

ios - AudioDataPacketCount 返回 ValueUnknown

iOS:文本字段现在将整个应用程序中的条目格式化为电话号码

ios - 如何为 PencilKit 创建 .drawing 文件?

c - 当用户输入数字时如何打印文件中的特定行