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

# init(string:encodingInvalidCharacters:)

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

## Declaration

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

## Parameters

- `string`: A URL location.
- `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 a URL from a string

- [init(string:)](foundation/url/init(string:).md)
- [init(string:relativeTo:)](foundation/url/init(string:relativeto:).md)
- [init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:)](foundation/url/init(resolvingbookmarkdata:options:relativeto:bookmarkdataisstale:)-3ic6f.md)
- [init(resolvingBookmarkData:options:relativeTo:bookmarkDataIsStale:)](foundation/url/init(resolvingbookmarkdata:options:relativeto:bookmarkdataisstale:)-97e6x.md)
