---
title: "init(string:encodingInvalidCharacters:)"
framework: foundation
role: symbol
role_heading: Initializer
path: "foundation/urlcomponents/init(string:encodinginvalidcharacters:)"
---

# init(string:encodingInvalidCharacters:)

Creates a URL components instance from the provided string, optionally IDNA- and percent-encoding any invalid characters.

## Declaration

```swift
init?(string: String, encodingInvalidCharacters: Bool)
```

## Parameters

- `string`: The URL string to parse.
- `encodingInvalidCharacters`: A Boolean value that indicates whether the initializer attempts to encode any invalid characters in string.

## Discussion

Discussion If encodingInvalidCharacters is true, this initializer tries to encode the string to create a valid URL. If the URL string is still invalid after encoding, the initializer returns nil.

## See Also

### Creating URL components

- [init()](foundation/urlcomponents/init().md)
- [init(string:)](foundation/urlcomponents/init(string:).md)
- [init(url:resolvingAgainstBaseURL:)](foundation/urlcomponents/init(url:resolvingagainstbaseurl:).md)
