NSUrl fileURLWithPath 返回奇怪的中文符号 [英] NSUrl fileURLWithPath returns strange chinese signs

查看:83
本文介绍了NSUrl fileURLWithPath 返回奇怪的中文符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的文档文件夹有一个 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屋!

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