私はNSCharacterSet.URLQueryAllowedCharacterSet()
を使用して文字列にパーセントエンコーディングを追加していますが、一部の文字では「&」または「?」の文字は見えないようです。既存のものに基づいてカスタムNSCharacterSetを構築するにはどうすればよいですか?カスタムNSCharacterSetの作成方法は?
12
A
答えて
30
新しい文字セットを作成する最も一般的な方法は、 CharacterSet(charactersIn:)
を使用し、セットのすべての文字をString
としています。
var characterSet = CharacterSet.urlQueryAllowed
characterSet.insert(charactersIn: "?&")
、また、あなたが試すことができObjective-C and Swift URL encoding
2
の点に注意してください。
let characterSet = NSMutableCharacterSet() //create an empty mutable set
characterSet.formUnionWithCharacterSet(NSCharacterSet.URLQueryAllowedCharacterSet())
characterSet.addCharactersInString("?&")
または単にスウィフト3を既存のセットに一部の文字を追加する
を使用して達成することができます私の方法:
let password = "[email protected]#$%^&*()-_abcdABCD1234`~"
// Swift 2.3
extension NSCharacterSet {
static var rfc3986Unreserved: NSCharacterSet {
let mutable = NSMutableCharacterSet()
mutable.formUnionWithCharacterSet(.alphanumericCharacterSet())
mutable.addCharactersInString("-_.~")
return mutable
}
}
let encoding = password.stringByAddingPercentEncodingWithAllowedCharacters(.rfc3986Unreserved)
// Swift 3
extension CharacterSet {
static var rfc3986Unreserved: CharacterSet {
return CharacterSet(charactersIn: "-_.~").union(.alphanumerics)
}
}
let encoding = password.addingPercentEncoding(withAllowedCharacters: .rfc3986Unreserved)
Print:
original -> [email protected]#$%^&*()-_abcdABCD1234`~
encoding -> %3F%2B%3D%21%40%23%24%25%5E%26%2A%28%29-_abcdABCD1234%60~
RFC3986:あなたの既存 `NSCharacterSet`でプレーする可能性を与える必要がありますNSMutableCharacterSet``で https://tools.ietf.org/html/rfc3986
関連する問題
- 1. カスタムGridViewの作成方法
- 2. カスタムprogressDialogの作成方法
- 3. カスタム入力の作成方法は?
- 4. カスタムIntelliJプロジェクトテンプレートの作成方法は?
- 5. カスタムPOCOシリアライザ/デシリアライザの作成方法は?
- 6. カスタムMVC3 ActionLinkメソッドの作成方法は?
- 7. Sequelize - カスタム作成方法
- 8. カスタムAuthorizeAttributeは、私は、カスタムAuthorizeAttributeを作成する方法
- 9. FFMPEG、カスタム波形の作成方法
- 10. カスタムJUnit5エクステンションの作成方法
- 11. C#TabControl、カスタムTabPagesコレクションエディタの作成方法
- 12. Yii2:カスタム削除ボタンの作成方法
- 13. カスタムAndroidアニメーションの作成方法
- 14. Passport-jsカスタム戦略の作成方法
- 15. WPFカスタムDataGridCellでカスタムDataGridを作成する方法は?
- 16. カスタムUIDatePickerコントロールを作成する方法
- 17. カスタムIDを作成する方法
- 18. カスタムSwingコンポーネントを作成する方法
- 19. カスタムDataGridViewCellを作成する方法
- 20. カスタムUICollectionViewCellを作成する方法
- 21. カスタムUISliderを作成する方法
- 22. cocos2d-xでカスタム作成機能を作成する方法
- 23. AutoLayoutをサポートするカスタム実装のtextViewの作成方法は?
- 24. Googleカスタム検索用のタグクラウドの作成方法は?
- 25. デフォルト以外のカスタム項目でカスタムUIMenuControllerを作成する方法は?
- 26. カスタムFacebookファンページを作成する最速の方法は?
- 27. iOSでカスタムNSLinguisticTaggerタグのスキームを作成する方法は?
- 28. カスタムDrupalテンプレートの作成方法はどこですか?
- 29. カスタムitemscontrolItemのIsSelectedプロパティを作成する方法は?
- 30. Rails 3.カスタムPUTアクションの作成方法は?
ルック。 – Larme