のようにPHPでの問合せは、スウィフト例です。URLのパーセントエンコーディングは唯一私がここスウィフトで同じ動作にPHPでURLをエンコードしたいスウィフト
let string = "http://site.se/wp-content/uploads/2015/01/Hidløgsma.jpg"
let encodedString = string.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
結果:http://site.se/wp-content/uploads/2015/01/Hidl%25F8gsma.jpg
どのようにPHPで同じ結果を得ます。つまり、クエリのみをエンコードし、サンプルの文字列で同じ結果を返します。ここでスウィフト機能についてのドキュメントは、次のとおりです。各URL コンポーネントが使用可能な文字の異なるセットを指定しているため
func addingPercentEncoding(withAllowedCharacters allowedCharacters: CharacterSet) -> String?
全体のURL文字列は、パーセントエンコードすることはできません。 の例の場合、URLのクエリーコンポーネントは「@」文字を許可しますが、パスワードコンポーネントでは文字をパーセントエンコードする必要があります。
正しいパーセントエンコードされた 文字を判別するために、UTF-8エンコーディングが使用されます。 7ビットの ASCII範囲外のallowedCharactersの文字は無視されます。
https://developer.apple.com/documentation/foundation/nsstring/1411946-addingpercentencoding
urlQueryAllowed
URLのクエリコンポーネントは、直ちに 疑問符を以下の(?)コンポーネントです。たとえば、URL http://www.example.com/index.php?key1=value1#jumpLinkでは、クエリ はkey1 = value1です。
https://developer.apple.com/documentation/foundation/nscharacterset/1416698-urlqueryallowed
で
フル・デモドメインの後のパスを解析し、 'urlencode'を使ってクエリの一部である各コンポーネントをエンコードし、urlを再構築します。 – jeroen
URLを組み立てるときには、事実の後ではなく、実際にそれらのコンポーネントを個別にエンコードする必要があります。 øの代わりにあなたの価値があるとしたら?それで、それがコード化されるべきかどうかは全く曖昧です。 – deceze