gpt4 book ai didi

gmail 原子提要的 cocoa 格式 NSURL 字符串

转载 作者:行者123 更新时间:2023-12-03 17:06:05 25 4
gpt4 key购买 nike

我正在尝试格式化 URL 字符串以检索 gmail Atom 提要,但我遇到了问题。这是我的代码:

NSString *urlstring = [NSString stringWithFormat:@"https://%@:%@@gmail.google.com/­gmail/­feed/atom", username, userpass];
NSString *encodedString = [urlstring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:encodedString];

这是我的日志中的内容。

https://••••••••@gmail.com:•••••••••@gmail.google.com/%C2%ADgmail/%C2%ADfeed/atom

这-->%C2%AD 似乎是问题所在。它应该只是一个斜杠。知道如何清理它吗?谢谢。

最佳答案

简短回答:

您的urlstring包含软连字符。

综合答案:

在以下代码中,withSoftHyphenswithoutSoftHyphens 看起来相同:

NSString *withSoftHyphens    = @"example/­example/­example";
NSString *withoutSoftHyphens = @"example/example/example";

NSLog(@"%@",[withSoftHyphens stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
NSLog(@"%@",[withoutSoftHyphens stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);

但是输出不同:
(通过复制并执行上面的代码来检查自己)

"example/%C2%ADexample/%C2%ADexample"
"example/example/example"

对字符串进行编码后,软连字符基本上由 %C2%AD 表示。

引自维基百科:

Soft hyphen is a type of hyphen used to specify a place in text where a hyphenated break is allowed without forcing a line break in an inconvenient place if the text is re-flowed.

换句话说,您的urlstring包含软连字符。
只需使用退格键删除 /g/f 并再次输入即可。
请注意,您实际上需要三个退格键才能仅删除两个字符 (/g)。
- 第一个退格键删除 g
- 第二个退格键删除了不可见的软连字符。
- 第三个退格键删除 /

总之,删除软连字符后,您的代码可以正常工作:

NSString *username = @"Anne";
NSString *userpass = @"Password";
NSString *urlstring = [NSString stringWithFormat:@"https://%@:%@@gmail.google.com/mail/feed/atom", username, userpass];
NSString *encodedString = [urlstring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:encodedString];
NSLog(@"%@", url);

输出:

https://Anne:Password@gmail.google.com/mail/feed/atom

关于gmail 原子提要的 cocoa 格式 NSURL 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7998406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com