From 06c4899a9bb13eb54608581f41e251210d339ddb Mon Sep 17 00:00:00 2001 From: zhengjun <> Date: Sat, 26 May 2018 11:28:45 +0800 Subject: [PATCH] merge conflict --- Source/SwiftyJSON.swift | 14 +++++++++----- Tests/SwiftyJSONTests/StringTests.swift | 3 +++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Source/SwiftyJSON.swift b/Source/SwiftyJSON.swift index 649d7f81..03b2f275 100644 --- a/Source/SwiftyJSON.swift +++ b/Source/SwiftyJSON.swift @@ -977,11 +977,15 @@ extension JSON { // Check for existing percent escapes first to prevent double-escaping of % character if let _ = self.rawString.range(of: "%[0-9A-Fa-f]{2}", options: .regularExpression, range: nil, locale: nil) { return Foundation.URL(string: self.rawString) - } else if let encodedString_ = self.rawString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) { - // We have to use `Foundation.URL` otherwise it conflicts with the variable name. - return Foundation.URL(string: encodedString_) - } else { - return nil + }else { + var charSet = CharacterSet.urlQueryAllowed + charSet.insert(charactersIn: "#") + if let encodedString_ = self.rawString.addingPercentEncoding(withAllowedCharacters: charSet) { + // We have to use `Foundation.URL` otherwise it conflicts with the variable name. + return Foundation.URL(string: encodedString_) + } else { + return nil + } } default: return nil diff --git a/Tests/SwiftyJSONTests/StringTests.swift b/Tests/SwiftyJSONTests/StringTests.swift index 9ba2b1df..d5ed7332 100644 --- a/Tests/SwiftyJSONTests/StringTests.swift +++ b/Tests/SwiftyJSONTests/StringTests.swift @@ -39,6 +39,9 @@ class StringTests: XCTestCase { func testURL() { let json = JSON("http://github.com") XCTAssertEqual(json.URL!, URL(string:"http://github.com")!) + + let json2 = JSON("http://github.com#location") + XCTAssertEqual(json2.url!, URL(string: "http://github.com#location")) } func testBool() {