在Cocoa中将字符转换为HTML实体

在Cocoa中将字符转换为HTML实体,第1张

概述我目前正在尝试将一个URL放在一起,我指定了一些GET参数.但是我想在这个URL中使用日语或其他字符. 有没有办法将NSString转换为包含我的NSString中“特殊”字符的HTML实体的字符串? 我目前正在使用以下代码,除了中文和日文等“特殊字符”之外,它似乎有效: NSString* url = @"/translate_a/t?client=t&sl=auto&tl=";url = [ 我目前正在尝试将一个URL放在一起,我指定了一些GET参数.但是我想在这个URL中使用日语或其他字符.

有没有办法将Nsstring转换为包含我的Nsstring中“特殊”字符的HTML实体的字符串?

我目前正在使用以下代码,除了中文和日文等“特殊字符”之外,它似乎有效:

Nsstring* url = @"/translate_a/t?clIEnt=t&sl=auto&tl=";url = [url stringByAppendingString:destinationLanguage];url = [url stringByAppendingString:@"&text="];url = [url stringByAppendingString:text];NSURL* nsurl = [[NSURL alloc] initWithScheme:@"http" host:@"translate.Google.com" path:url]; NSError* error;Nsstring* returnValue = [[Nsstring alloc] initWithContentsOfURL:nsurl enCoding:NSUTF8StringEnCoding error:&error];
解决方法 要对参数进行正确的URL编码,您需要将每个名称和值转换为UTF-8,然后分别对每个名称和值进行URL编码,然后使用“&”使用“=”和名称 – 值对连接名称.

我通常发现将所有参数放在NSDictionary中更容易,然后从字典中构建查询字符串.这是我用来做的一个类别:

// file NSDictionary+UrlEnCoding.h#import <Cocoa/Cocoa.h>@interface NSDictionary (UrlEnCoding)-(Nsstring*) urlEncodedString;@end// file NSDictionary+UrlEnCoding.m#import "NSDictionary+UrlEnCoding.h"// private helper function to convert any object to its string representationstatic Nsstring *toString(ID object) {  return [Nsstring stringWithFormat: @"%@",object];}// private helper function to convert string to UTF-8 and URL encode itstatic Nsstring *urlEncode(ID object) {  Nsstring *string = toString(object);  return [string stringByAddingPercentEscapesUsingEnCoding: NSUTF8StringEnCoding];}@implementation NSDictionary (UrlEnCoding)-(Nsstring*) urlEncodedString {  NSMutableArray *parts = [NSMutableArray array];  for (ID key in self) {    ID value = [self objectForKey: key];    Nsstring *part = [Nsstring stringWithFormat: @"%@=%@",urlEncode(key),urlEncode(value)];    [parts addobject: part];  }  return [parts componentsJoinedByString: @"&"];}@end

该方法构建一个名称 – 值对的数组,通过URL对每个键和值进行编码,然后将它们与’=’连接在一起.然后零件阵列中的零件与’&’连接在一起字符.

所以对于你的例子:

#import "NSDictionary+UrlEnCoding.h"// ...NSMutableDictionary *parameters = [NSMutableDictionary dictionary];[parameters setValue: @"t" forKey: @"clIEnt"];[parameters setValue: @"auto" forKey: @"sl"];[parameters setValue: destinationLanguage forKey: @"tl"];[parameters setValue: text forKey: @"text"];Nsstring *urlString = [@"/translate_a/t?" stringByAppendingString: [parameters urlEncodedString]];
总结

以上是内存溢出为你收集整理的在Cocoa中将字符转换为HTML实体全部内容,希望文章能够帮你解决在Cocoa中将字符转换为HTML实体所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1069981.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存