String 如何替换出现的';在字符串中使用撇号,然后创建URL

String 如何替换出现的';在字符串中使用撇号,然后创建URL,string,swift,url,audio,String,Swift,Url,Audio,如何用另一个字符串替换字符串中的和撇号?我试过用replacingoccurrencestofstring来表示string,但它不识别撇号。然后,我需要一个替代品,以便它可以通过URL识别 var name = "can't.wav" name = name.stringByReplacingOccurrencesOfString("'", withString: "%27") // i read somewhere that %27 might be ok in a URL, but not

如何用另一个字符串替换字符串中的和撇号?我试过用replacingoccurrencestofstring来表示string,但它不识别撇号。然后,我需要一个替代品,以便它可以通过URL识别

var name = "can't.wav"
name = name.stringByReplacingOccurrencesOfString("'", withString: "%27") // i read somewhere that %27 might be ok in a URL, but not really sure.// %27 not needed.

let soundPath = (NSBundle.mainBundle().resourcePath! as NSString).stringByAppendingPathComponent(name)

// right now this returns xxx.app/canE2%80%99t.wav - I want it to return xxx.app/can't.wav
然后我想使用此URL播放声音

if checkValidation.fileExistsAtPath(soundPath) {
let soundURL = NSURL.fileURLWithPath(soundPath)                
            do {
                self.player = try AVAudioPlayer(contentsOfURL: soundURL)
                player.prepareToPlay()
                player.volume = 1.0
                player.play()

            } catch _ as NSError {
                print("file not found")
            }
        }

非常感谢任何帮助

只是一个简短的注释,确保要修改的变量是
var name
而不是
let
但它不能识别撇号
这是什么意思?我刚试过,它返回的是“can%27t.wav”,而不是“canE2%80%99t.wav”。你一定在做别的事情。UTF-8
E28099
是一个“排版”右引号:“而不是撇号”。您应该仔细检查resources.Genius中的代码和音频文件名中实际使用的字符。很好的一个,Martin R-他们不是撇号,而是源头!他们看起来像他们,但他们是骗子!我决不会想到这一点!。顺便说一句,soundURL可以使用撇号:-)Thx来查找@Eric。