NSUrl fileURLWithPath 返回奇怪的中文符号 [英] NSUrl fileURLWithPath returns strange chinese signs
问题描述
我的文档文件夹有一个 NSString 路径.
I have an NSString path to my Documents folder.
NSString* stringURL = @"/var/mobile/Applications/5667FADC-F848-40CF-A309-
7BFE598AE6AB/Library/Application Support/MyAppDirectory";
当我用
NSURL* url = [NSURL fileURLWithPath:stringUrl];
和 NSLog(@"Created URL: %@",url);
,我得到了一些奇怪的结果:
and NSLog(@"Created URL: %@",url);
, i get some strange result:
///var/mobile/Applications/5667FADC-F848-40CF-A309-7BFE598AE6AB/Library/Application㤈㤋丼乽启汲汲䱒›楦敬⼺⼯庆⽲潭楢敬䄯灰汤楽惯㤈椋㜶䅆䍄䘭㐸ⴸ〴㐸ⴸ〴䄭〳䉁䈷䕆㤵䄸㙅䉁䰯扩慲祲䘭灰楬惯楴汤㈥匰灵溃玱䴯楄/我的灵楴汤㈥匰灵溃玱䴯ㄚㄚㄚㄚㄚㄚㄚㄚ
///var/mobile/Applications/5667FADC-F848-40CF-A309-7BFE598AE6AB/Library/Application㤈㤋ތȀ乽啓汲唠䱒›楦敬⼺⼯慶⽲潭楢敬䄯灰楬慣楴湯⽳㘵㜶䅆䍄䘭㐸ⴸ〴䙃䄭〳ⴹ䈷䕆㤵䄸㙅䉁䰯扩慲祲䄯灰楬慣楴湯㈥匰灵潰瑲䴯䅹灰楄敲瑣牯⽹upport/MyAppDirectory/
为什么会这样?我做错了什么?
Why is this so ? What am I doing wrong ?
推荐答案
基于您从 上一个问题;这是因为使用 stringByAddingPercentEscapesUsingEncoding
会生成一个类似 printf 的格式化字符串,其中包含 %20S
(Application Support
转换为 %20
),混淆了 NSLog()
:
Based on the answer you accepted from a previous question; it's because the use of stringByAddingPercentEscapesUsingEncoding
will generate a printf-like formatting string containing %20S
(the space between Application Support
is converted to %20
), which confuses NSLog()
:
NSURL *url = [NSURL fileURLWithString:[stringURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] isDirectory:YES];
NSLog(url);
使用 NSLog("@%", url)
避免这个错误.
use NSLog("@%", url)
to avoid this error.
这篇关于NSUrl fileURLWithPath 返回奇怪的中文符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!