QUrl Class
QUrl 클래스는 URL 작업을 위한 편리한 인터페이스를 제공합니다. 더 보기...
Header: | #include <QUrl> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 상속된 멤버를 포함한 모든 멤버 목록
- QUrl은 입력/출력 및 네트워킹, 네트워크 프로그래밍 API 및 암시적으로 공유되는 클래스의 일부입니다.
이 클래스는 비교하기 어렵습니다.
참고: 이 클래스의 모든 함수는 재진입입니다.
공용 유형
(since 6.3) enum | AceProcessingOption { IgnoreIDNWhitelist, AceTransitionalProcessing } |
flags | AceProcessingOptions |
enum | ComponentFormattingOption { PrettyDecoded, EncodeSpaces, EncodeUnicode, EncodeDelimiters, EncodeReserved, …, FullyDecoded } |
flags | ComponentFormattingOptions |
flags | FormattingOptions |
enum | ParsingMode { TolerantMode, StrictMode, DecodedMode } |
enum | UrlFormattingOption { None, RemoveScheme, RemovePassword, RemoveUserInfo, RemovePort, …, NormalizePathSegments } |
enum | UserInputResolutionOption { DefaultResolution, AssumeLocalFile } |
flags | UserInputResolutionOptions |
공용 함수
QUrl() | |
QUrl(const QString &url, QUrl::ParsingMode parsingMode = TolerantMode) | |
QUrl(const QUrl &other) | |
QUrl(QUrl &&other) | |
~QUrl() | |
QUrl | adjusted(QUrl::FormattingOptions options) const |
QString | authority(QUrl::ComponentFormattingOptions options = PrettyDecoded) const |
void | clear() |
QString | errorString() const |
QString | fileName(QUrl::ComponentFormattingOptions options = FullyDecoded) const |
QString | fragment(QUrl::ComponentFormattingOptions options = PrettyDecoded) const |
bool | hasFragment() const |
bool | hasQuery() const |
QString | host(QUrl::ComponentFormattingOptions options = FullyDecoded) const |
bool | isEmpty() const |
bool | isLocalFile() const |
bool | isParentOf(const QUrl &childUrl) const |
bool | isRelative() const |
bool | isValid() const |
bool | matches(const QUrl &url, QUrl::FormattingOptions options) const |
QString | password(QUrl::ComponentFormattingOptions options = FullyDecoded) const |
QString | path(QUrl::ComponentFormattingOptions options = FullyDecoded) const |
int | port(int defaultPort = -1) const |
QString | query(QUrl::ComponentFormattingOptions options = PrettyDecoded) const |
QUrl | resolved(const QUrl &relative) const |
QString | scheme() const |
void | setAuthority(const QString &authority, QUrl::ParsingMode mode = TolerantMode) |
void | setFragment(const QString &fragment, QUrl::ParsingMode mode = TolerantMode) |
void | setHost(const QString &host, QUrl::ParsingMode mode = DecodedMode) |
void | setPassword(const QString &password, QUrl::ParsingMode mode = DecodedMode) |
void | setPath(const QString &path, QUrl::ParsingMode mode = DecodedMode) |
void | setPort(int port) |
void | setQuery(const QString &query, QUrl::ParsingMode mode = TolerantMode) |
void | setQuery(const QUrlQuery &query) |
void | setScheme(const QString &scheme) |
void | setUrl(const QString &url, QUrl::ParsingMode parsingMode = TolerantMode) |
void | setUserInfo(const QString &userInfo, QUrl::ParsingMode mode = TolerantMode) |
void | setUserName(const QString &userName, QUrl::ParsingMode mode = DecodedMode) |
void | swap(QUrl &other) |
CFURLRef | toCFURL() const |
QString | toDisplayString(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const |
QByteArray | toEncoded(QUrl::FormattingOptions options = FullyEncoded) const |
QString | toLocalFile() const |
NSURL * | toNSURL() const |
QString | toString(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const |
QString | url(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const |
QString | userInfo(QUrl::ComponentFormattingOptions options = PrettyDecoded) const |
QString | userName(QUrl::ComponentFormattingOptions options = FullyDecoded) const |
QUrl & | operator=(QUrl &&other) |
QUrl & | operator=(const QString &url) |
QUrl & | operator=(const QUrl &url) |
정적 공용 멤버
(since 6.3) QString | fromAce(const QByteArray &domain, QUrl::AceProcessingOptions options = {}) |
QUrl | fromCFURL(CFURLRef url) |
QUrl | fromEncoded(QByteArrayView input, QUrl::ParsingMode mode = TolerantMode) |
QUrl | fromLocalFile(const QString &localFile) |
QUrl | fromNSURL(const NSURL *url) |
QString | fromPercentEncoding(const QByteArray &input) |
QList<QUrl> | fromStringList(const QStringList &urls, QUrl::ParsingMode mode = TolerantMode) |
QUrl | fromUserInput(const QString &userInput, const QString &workingDirectory = QString(), QUrl::UserInputResolutionOptions options = DefaultResolution) |
QStringList | idnWhitelist() |
void | setIdnWhitelist(const QStringList &list) |
(since 6.3) QByteArray | toAce(const QString &domain, QUrl::AceProcessingOptions options = {}) |
QByteArray | toPercentEncoding(const QString &input, const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray()) |
QStringList | toStringList(const QList<QUrl> &urls, QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) |
관련 비회원
bool | operator!=(const QUrl &lhs, const QUrl &rhs) |
QDataStream & | operator<<(QDataStream &out, const QUrl &url) |
bool | operator==(const QUrl &lhs, const QUrl &rhs) |
QDataStream & | operator>>(QDataStream &in, QUrl &url) |
매크로
자세한 설명
인코딩된 형식과 인코딩되지 않은 형식의 URL을 모두 구문 분석하고 구성할 수 있습니다. QUrl은 국제화된 도메인 이름(IDN)도 지원합니다.
QUrl을 사용하는 가장 일반적인 방법은 생성자를 통해 전체 URL이 포함된 QString 을 전달하여 초기화하는 것입니다. 또한 QUrl::fromEncoded()을 사용하여 전체 URL이 포함된 QByteArray 또는 QUrl::fromUserInput()을 사용하여 불완전한 URL에서 휴리스틱 방식으로 QUrl 개체를 만들 수도 있습니다. URL 표현은 QUrl::toString() 또는 QUrl::toEncoded()를 사용하여 QUrl에서 얻을 수 있습니다.
URL은 인코딩 또는 인코딩되지 않은 두 가지 형태로 표현할 수 있습니다. 인코딩되지 않은 표현은 사용자에게 표시하기에 적합하지만 인코딩된 표현은 일반적으로 웹 서버로 전송하는 데 적합합니다. 예를 들어, 인코딩되지 않은 URL "http://bühler.example.com/List of applicants.xml"은 서버에 "http://xn-bhler-kva.example.com/List%20of%20applicants.xml"로 전송됩니다.
setScheme(), setUserName(), setPassword(), setHost(), setPort(), setPath(), setQuery() 및 setFragment()을 호출하여 URL을 하나씩 구성할 수도 있습니다. setAuthority ()는 사용자 이름, 비밀번호, 호스트 및 포트를 설정하는 몇 가지 편의 기능도 사용할 수 있습니다. setUserInfo()는 사용자 이름과 비밀번호를 한 번에 설정합니다.
isValid()를 호출하여 URL이 유효한지 확인합니다. 이 작업은 URL을 작성하는 동안 언제든지 수행할 수 있습니다. isValid ()가 false
을 반환하는 경우 계속 진행하기 전에 clear()을 호출하거나 setUrl()로 새 URL을 파싱하여 다시 시작해야 합니다.
QUrlQuery 클래스와 그 메서드 QUrlQuery::setQueryItems(), QUrlQuery::addQueryItem() 및 QUrlQuery::removeQueryItem()를 사용하면 쿼리를 구성하는 것이 특히 편리합니다. QUrlQuery::setQueryDelimiters ()를 사용하여 쿼리 문자열을 생성하는 데 사용되는 구분 기호를 사용자 지정할 수 있습니다.
인코딩된 URL 문자열 또는 쿼리 문자열 생성의 편의를 위해 QString 객체의 퍼센트 인코딩 및 디코딩을 처리하는 fromPercentEncoding() 및 toPercentEncoding()이라는 두 개의 정적 함수가 있습니다.
fromLocalFile()는 로컬 파일 경로를 구문 분석하여 QUrl을 구성합니다. toLocalFile()는 URL을 로컬 파일 경로로 변환합니다.
사람이 읽을 수 있는 URL의 표현은 toString()로 가져옵니다. 이 표현은 인코딩되지 않은 형태로 사용자에게 URL을 표시하는 데 적합합니다. 그러나 toEncoded()로 반환되는 인코딩된 형식은 웹 서버, 메일 클라이언트 등에 전달되는 내부용입니다. 두 형식 모두 기술적으로 정확하며 동일한 URL을 모호하지 않게 나타냅니다. 실제로 두 형식 중 하나를 QUrl의 생성자나 setUrl()에 전달하면 동일한 QUrl 객체가 생성됩니다.
QUrl은 RFC 3986 (Uniform Resource Identifier: 일반 구문)의 URI 사양을 준수하며, RFC 1738 (Uniform Resource Locators)의 스키마 확장을 포함합니다. QUrl의 대소문자 접기 규칙은 RFC 3491 (Nameprep: 국제화된 도메인 이름(IDN)을 위한 문자열 준비 프로파일). 또한 로캘이 UTF-8(IDN에서 요구)을 사용하여 파일 이름을 인코딩하는 경우 freedesktop.org의 파일 URI 사양과도 호환됩니다.
상대 URL과 상대 경로
isRelative()를 호출하면 URL이 상대 URL인지 여부가 반환됩니다. 상대 URL에는 scheme 이 없습니다. 예를 들어
qDebug()<< QUrl("main.qml").isRelative(); // 참: 스키마 없음 qDebug() << QUrl("qml/main.qml").isRelative(); // true: no scheme qDebug() << QUrl("file:main.qml").isRelative(); // false: has "file" scheme qDebug() << QUrl("file:qml/main.qml").isRelative(); // false: has "file" scheme
URL은 절대 경로를 포함하면서 상대 경로를 포함할 수도 있고 그 반대의 경우도 마찬가지입니다:
// 절대 URL, 상대 경로 QUrl url("file:file.txt"); qDebug() << url.isRelative(); // false: has "file" scheme qDebug() << QDir::isAbsolutePath(url.path()); // false: relative path // 상대 URL, 절대 경로URL = ( QUrl("/home/user/file.txt"); qDebug() << url.isRelative(); // true: has no scheme qDebug() << QDir::isAbsolutePath(url.path()); // true: absolute path
상대 URL은 절대 URL을 반환하는 resolved()에 인자로 전달하여 확인할 수 있습니다. isParentOf()는 한 URL이 다른 URL의 부모인지 여부를 확인하는 데 사용됩니다.
오류 검사
QUrl은 URL을 구문 분석하는 동안 또는 URL의 구성 요소가 개별 설정자 메서드(예: setScheme(), setHost() 또는 setPath())로 설정될 때 URL에서 많은 오류를 감지할 수 있습니다. 구문 분석 또는 설정자 함수가 성공하면 이전에 기록된 오류 조건은 모두 삭제됩니다.
기본적으로 QUrl 설정자 메서드는 QUrl::TolerantMode 에서 작동하므로 몇 가지 일반적인 실수와 데이터의 잘못된 표현을 허용합니다. 다른 구문 분석 방법은 QUrl::StrictMode 으로, 추가 검사를 적용합니다. 구문 분석 모드의 차이점에 대한 설명은 QUrl::ParsingMode 을 참조하세요.
QUrl은 URL 사양 준수 여부만 확인합니다. 상위 수준 프로토콜 URL이 다른 곳의 핸들러가 예상하는 형식인지 확인하려고 하지 않습니다. 예를 들어, 다음 URI는 사용 시 의미가 없더라도 QUrl에서 모두 유효한 것으로 간주합니다:
- "http:/filename.html"
- "mailto://example.com"
구문 분석기가 오류가 발생하면 isValid()는 거짓을 반환하고 toString() / toEncoded()는 빈 문자열을 반환하여 이벤트에 신호를 보냅니다. 사용자에게 URL 구문 분석에 실패한 이유를 표시해야 하는 경우 errorString()를 호출하여 오류 조건을 얻을 수 있습니다. 이 메시지는 고도로 기술적인 내용이며 최종 사용자에게는 이해가 되지 않을 수 있다는 점에 유의하세요.
QUrl은 하나의 오류 조건만 기록할 수 있습니다. 오류가 두 개 이상 발견되면 어떤 오류가 보고되는지는 정의되지 않습니다.
문자 변환
URL 및 문자열을 처리할 때 잘못된 문자 변환을 방지하려면 다음 규칙을 따르세요:
- QByteArray 또는 문자*의 URL을 포함하도록 QString 을 만들 때는 항상 QString::fromUtf8()을 사용하세요.
멤버 유형 문서
[since 6.3]
열거형 QUrl::AceProcessingOption
플래그 QUrl::AceProcessingOptions
ACE 처리 옵션은 URL이 ASCII 호환 인코딩으로 변환되는 방식을 제어합니다.
상수 | 값 | 설명 |
---|---|---|
QUrl::IgnoreIDNWhitelist | 0x1 | URL을 유니코드로 변환할 때 IDN 화이트리스트를 무시합니다. |
QUrl::AceTransitionalProcessing | 0x2 | UTS #46에 설명된 과도기적 처리를 사용합니다. 이렇게 하면 IDNA 2003 사양과의 호환성이 향상됩니다. |
기본값은 비전환 처리를 사용하고 최상위 도메인이 IDN 화이트리스트에 나열된 URL 내에서만 ASCII가 아닌 문자를 허용하는 것입니다.
이 열거형은 Qt 6.3에 도입되었습니다.
AceProcessingOptions 유형은 QFlags<AceProcessingOption>에 대한 typedef입니다. 이 유형은 AceProcessingOption 값의 OR 조합을 저장합니다.
toAce(), fromAce() 및 idnWhitelist()도 참조하십시오 .
열거형 QUrl::컴포넌트포맷팅옵션
플래그 QUrl::컴포넌트포맷팅옵션
컴포넌트 서식 옵션은 URL의 컴포넌트를 텍스트로 작성할 때 서식을 지정하는 방법을 정의합니다. toString () 및 toEncoded()에서 사용할 경우 QUrl::FormattingOptions 의 옵션과 결합할 수 있습니다.
상수 | 값 | 설명 |
---|---|---|
QUrl::PrettyDecoded | 0x000000 | 컴포넌트는 대부분의 퍼센트 인코딩된 문자가 디코딩된 "예쁜 형태"로 반환됩니다. PrettyDecoded의 정확한 동작은 컴포넌트마다 다르며, Qt 릴리스마다 변경될 수도 있습니다. 이것이 기본값입니다. |
QUrl::EncodeSpaces | 0x100000 | 공백 문자는 인코딩된 형태("%20")로 남겨둡니다. |
QUrl::EncodeUnicode | 0x200000 | US-ASCII가 아닌 문자는 UTF-8 퍼센트 인코딩된 형태(예: U+00E9 코드포인트의 경우 "%C3%A9", 대문자가 포함된 라틴 소문자 E)로 인코딩된 상태로 둡니다. |
QUrl::EncodeDelimiters | 0x400000 | 0x800000 | 전체 URL이 텍스트로 표시될 때 URL에 표시되는 것처럼 특정 구분 기호는 인코딩된 형태로 남겨둡니다. 구분 기호는 컴포넌트마다 이 옵션 변경의 영향을 받습니다. toString () 또는 toEncoded()에는 이 플래그가 적용되지 않습니다. |
QUrl::EncodeReserved | 0x1000000 | 사양에 따라 URL에 허용되지 않는 US-ASCII 문자는 인코딩된 형태로 남겨둡니다. toString () 및 toEncoded()의 기본값입니다. |
QUrl::DecodeReserved | 0x2000000 | URL 사양에서 URL에 표시할 수 없는 US-ASCII 문자를 디코딩합니다. 이는 개별 컴포넌트의 게터에서 기본값입니다. |
QUrl::FullyEncoded | EncodeSpaces | EncodeUnicode | EncodeDelimiters | EncodeReserved | 이 컴포넌트는 URL의 일부로 표시되므로 모든 문자는 올바르게 인코딩된 형태로 남겨둡니다. toString ()와 함께 사용하면 toEncoded()의 결과와 정확히 동일한 QString 형식의 완전 호환 URL이 생성됩니다. |
QUrl::FullyDecoded | FullyEncoded | DecodeReserved | 0x4000000 | 가능한 한 많이 디코딩을 시도합니다. URL의 개별 구성 요소에 대해 퍼센트 인코딩 형태로 존재하는 제어 문자(U+0000~U+001F) 및 UTF-8 시퀀스를 포함한 모든 퍼센트 인코딩 시퀀스를 디코딩합니다. 이 모드를 사용하면 데이터가 손실될 수 있으며 자세한 내용은 아래를 참조하세요. |
한 번의 호출에서 EncodeReserved와 DecodeReserved 값을 함께 사용해서는 안 됩니다. 그럴 경우 동작이 정의되지 않습니다. 예약 문자와 관련된 '예쁜 모드'의 동작이 특정 컴포넌트, 특히 전체 URL에서 다르기 때문에 별도의 값으로 제공됩니다.
전체 디코딩
완전 디코딩 모드는 모든 문자가 그 자체를 나타내며 특별한 의미를 갖지 않는다는 점에서 Qt 4.x에서 QString 을 반환하는 함수의 동작과 유사합니다. 퍼센트 문자('%')의 경우에도 마찬가지이며, 퍼센트 인코딩된 시퀀스의 시작이 아니라 리터럴 퍼센트를 의미하는 것으로 해석해야 합니다. 다른 모든 디코딩 모드에서 동일한 실제 문자는 "%25" 시퀀스로 표시됩니다.
쿼리::완전 디코딩으로 얻은 데이터를 QUrl 에 다시 적용할 때마다 QUrl::DecodedMode 매개변수를 설정자(예: setPath() 및 setUserName())에 사용하도록 주의해야 합니다. 그렇게 하지 않으면 퍼센트 인코딩된 시퀀스의 시작 부분으로 퍼센트 문자('%')가 다시 해석될 수 있습니다.
이 모드는 URL의 일부가 URL이 아닌 컨텍스트에서 사용될 때 매우 유용합니다. 예를 들어 FTP 클라이언트 애플리케이션에서 사용자 아이디, 비밀번호 또는 파일 경로를 추출하려면 완전 디코딩 모드를 사용해야 합니다.
이 모드는 반환된 QString 에 안정적으로 표현할 수 없는 두 가지 조건이 있으므로 주의해서 사용해야 합니다. 다음과 같습니다:
- UTF-8이 아닌 시퀀스: URL에 유효한 UTF-8 시퀀스를 형성하지 않는 퍼센트 인코딩 문자 시퀀스가 포함될 수 있습니다. URL은 UTF-8을 사용하여 디코딩해야 하므로 디코더에 오류가 발생하면 해당 시퀀스가 존재했던 자리에 하나 이상의 대체 문자가 포함된 QString 이 반환됩니다.
- 인코딩된 구분 기호: URL은 리터럴 형식의 구분 기호와 퍼센트 인코딩된 형식의 구분 기호를 구분할 수도 있습니다. 이는 쿼리에서 가장 일반적으로 발견되지만 URL의 대부분의 부분에서 허용됩니다.
다음 예는 이 문제를 설명합니다:
QUrl original("http://example.com/?q=a%2B%3Db%26c"); QUrl copy(original); copy.setQuery(copy.query(QUrl::FullyDecoded), QUrl::DecodedMode); qDebug() << original.toString(); // prints: http://example.com/?q=a%2B%3Db%26c qDebug() << copy.toString(); // prints: http://example.com/?q=a+=b&c
두 URL이 HTTP GET을 통해 사용되었다면 웹 서버의 해석이 달라질 수 있습니다. 첫 번째 경우에는 키가 "q"이고 값이 "a+=b&c"인 하나의 매개변수로 해석할 것입니다. 두 번째 경우에는 아마도 두 개의 매개변수, 즉 하나는 키가 "q"이고 값이 "a =b"이고, 다른 하나는 키가 "c"이고 값이 없는 것으로 해석될 것입니다.
ComponentFormattingOptions 유형은 QFlags<ComponentFormattingOption>에 대한 typedef입니다. ComponentFormattingOption 값의 OR 조합을 저장합니다.
QUrl::FormattingOptions 를참조하세요 .
enum QUrl::ParsingMode
구문 분석 모드는 QUrl 가 문자열을 구문 분석하는 방식을 제어합니다.
Constant | 값 | 설명 |
---|---|---|
QUrl::TolerantMode | 0 | QUrl 는 URL의 일반적인 오류를 수정하려고 시도합니다. 이 모드는 표준을 엄격하게 준수하지 않는 것으로 알려진 소스에서 오는 URL을 구문 분석하는 데 유용합니다. |
QUrl::StrictMode | 1 | 유효한 URL만 허용됩니다. 이 모드는 일반적인 URL 유효성 검사에 유용합니다. |
QUrl::DecodedMode | 2 | QUrl 는 퍼센트 문자가 퍼센트 인코딩된 시퀀스의 시작이 아니라 그 자체를 의미하는 완전 디코딩된 형식으로 URL 구성 요소를 해석합니다. 이 모드는 URL의 구성 요소를 설정하는 설정자에게만 유효하며 QUrl 생성자, fromEncoded() 또는 setUrl()에서는 허용되지 않습니다. 이 모드에 대한 자세한 내용은 QUrl::FullyDecoded 문서를 참조하세요. |
허용 모드에서 구문 분석기는 다음과 같은 동작을 수행합니다:
- 공백 및 "%20": 인코딩되지 않은 공백 문자가 허용되며 "%20"과 동등한 것으로 취급됩니다.
- 단일 "%" 문자: 퍼센트 문자 "%"가 정확히 두 개의 16진수 문자가 뒤에 오지 않는 경우(예: "13% coverage.html")에는 "%25"로 대체됩니다. "%" 문자가 하나만 있으면 모든 퍼센트 문자에 대한 수정 모드가 트리거됩니다.
- 예약 문자 및 예약되지 않은 문자: 인코딩된 URL에는 몇 개의 문자만 리터럴로 포함해야 하며 다른 모든 문자는 퍼센트 인코딩되어야 합니다. 허용 모드에서는 공백 / 큰따옴표 / "<" / ">" / "" / "^" / "`" / "{" / "|" / "}" QUrl::DecodeReserved 를 toString() 또는 toEncoded()로 전달하여 동일한 문자를 다시 디코딩할 수 있습니다. 개별 컴포넌트의 겟터에서 이러한 문자는 디코딩된 형태로 반환되는 경우가 많습니다.
StrictMode에서 구문 분석 오류가 발견되면 isValid()는 false
을 반환하고 errorString()는 오류를 설명하는 메시지를 반환합니다. 오류가 두 개 이상 감지되면 어떤 오류가 보고되는지는 정의되지 않습니다.
일반적으로 구문 분석기가 처리할 수 있는 것보다 더 많은 오류와 기대치를 포함하는 사용자 입력을 구문 분석하는 데는 TolerantMode만으로는 충분하지 않다는 점에 유의하세요. 다른 프로그램과 같은 데이터 전송 소스에서 오는 데이터가 아닌 사용자로부터 직접 오는 데이터를 처리할 때는 fromUserInput()를 사용하는 것이 좋습니다.
fromUserInput(), setUrl(), toString(), toEncoded() 및 QUrl::FormattingOptions 를참조하세요 .
열거형 QUrl::UrlFormattingOption
플래그 QUrl::FormattingOptions
서식 옵션은 URL을 텍스트로 작성할 때 서식을 지정하는 방법을 정의합니다.
상수 | 값 | 설명 |
---|---|---|
QUrl::None | 0x0 | URL의 형식이 변경되지 않습니다. |
QUrl::RemoveScheme | 0x1 | URL에서 체계가 제거됩니다. |
QUrl::RemovePassword | 0x2 | URL의 모든 비밀번호가 제거됩니다. |
QUrl::RemoveUserInfo | RemovePassword | 0x4 | URL의 모든 사용자 정보가 제거됩니다. |
QUrl::RemovePort | 0x8 | URL에서 지정된 모든 포트가 제거됩니다. |
QUrl::RemoveAuthority | RemoveUserInfo | RemovePort | 0x10 | 사용자 이름, 비밀번호, 호스트 및 포트가 제거됩니다. |
QUrl::RemovePath | 0x20 | URL의 경로가 제거되고 스키마, 호스트 주소 및 포트(있는 경우)만 남습니다. |
QUrl::RemoveQuery | 0x40 | URL의 쿼리 부분('?' 문자 뒤)이 제거됩니다. |
QUrl::RemoveFragment | 0x80 | URL의 조각 부분('#' 문자 포함)이 제거됩니다. |
QUrl::RemoveFilename | 0x800 | 파일명(즉, 경로의 마지막 '/' 뒤의 모든 부분)이 제거됩니다. StripTrailingSlash가 설정되어 있지 않으면 뒤의 '/'는 유지됩니다. RemovePath가 설정되지 않은 경우에만 유효합니다. |
QUrl::PreferLocalFile | 0x200 | URL이 isLocalFile()에 따른 로컬 파일이고 쿼리나 조각이 포함되지 않은 경우 로컬 파일 경로가 반환됩니다. |
QUrl::StripTrailingSlash | 0x400 | 후행 슬래시가 있는 경우 경로에서 제거됩니다. |
QUrl::NormalizePathSegments | 0x1000 | 중복 디렉터리 구분 기호를 제거하고 "."와 "."를 (가능한 한) 해결하도록 경로를 수정합니다. 로컬 경로가 아닌 경로의 경우 인접한 슬래시는 유지됩니다. |
QUrl 이 준수하는 Nameprep의 대/소문자 접기 규칙에 따라 호스트 이름은 사용된 Qt::FormattingOptions에 관계없이 항상 소문자로 변환되어야 합니다.
QUrl::ComponentFormattingOptions 의 옵션도 사용할 수 있습니다.
FormattingOptions 유형은 QFlags<UrlFormattingOption>에 대한 typedef입니다. 이 유형은 UrlFormattingOption 값의 OR 조합을 저장합니다.
QUrl::ComponentFormattingOptions 를참조하세요 .
열거형 QUrl::사용자입력해상도옵션
플래그 QUrl::사용자입력해상도옵션
사용자 입력 해상도 옵션은 fromUserInput()가 상대 경로이거나 HTTP URL의 짧은 형식일 수 있는 문자열을 해석하는 방법을 정의합니다. 예를 들어 file.pl
은 로컬 파일 또는 URL http://file.pl
일 수 있습니다.
상수 | 값 | 설명 |
---|---|---|
QUrl::DefaultResolution | 0 | 기본 확인 메커니즘은 fromUserInput 에 지정된 작업 디렉터리에 로컬 파일이 존재하는지 확인하고 이 경우 로컬 경로만 반환하는 것입니다. 그렇지 않으면 URL이 가정됩니다. |
QUrl::AssumeLocalFile | 1 | 이 옵션을 사용하면 입력에 http://file.pl 과 같은 스키마가 포함되지 않는 한 fromUserInput()는 항상 로컬 경로를 반환합니다. 이 옵션은 파일이 존재하지 않는 경우 파일을 생성할 수 있는 텍스트 편집기 등의 애플리케이션에 유용합니다. |
사용자 입력 해상도 옵션 유형은 QFlags<사용자 입력 해상도 옵션>에 대한 typedef입니다. 이 유형은 UserInputResolutionOption 값의 OR 조합을 저장합니다.
fromUserInput()도 참조하세요 .
멤버 함수 문서
QUrl::QUrl()
빈 QUrl 객체를 생성합니다.
QUrl::QUrl(const QString &url, QUrl::ParsingMode parsingMode = TolerantMode)
url 을 구문 분석하여 URL을 생성합니다. 이 생성자는 적절한 URL 또는 URL 참조를 기대하며 의도를 추측하려고 시도하지 않는다는 점에 유의하세요. 예를 들어, 다음 선언은
QUrl url("example.com");
는 유효한 URL을 생성하지만 입력의 scheme() 부분이 누락되었으므로 예상한 것과 다를 수 있습니다. 위와 같은 문자열의 경우 애플리케이션은 fromUserInput()를 사용할 수 있습니다. 이 생성자 또는 setUrl()의 경우 아마도 다음과 같이 의도되었을 것입니다:
QUrl url("https://example.com");
QUrl은 URL에서 허용되지 않는 모든 문자를 자동으로 퍼센트 인코딩하고 예약되지 않은 문자(문자, 숫자, 하이픈, 밑줄, 점 및 물결표)를 나타내는 퍼센트 인코딩된 시퀀스를 디코딩합니다. 다른 모든 문자는 원래 형태로 남습니다.
파서 모드 parsingMode 를 사용하여 url 를 파싱합니다. TolerantMode (기본값)에서 QUrl은 특정 오류, 특히 두 개의 16진수 뒤에 오지 않는 퍼센트 문자('%')가 있는 경우 이를 수정하며 위치에 상관없이 모든 문자를 허용합니다. StrictMode 에서는 인코딩 오류가 허용되지 않으며, 인코딩되지 않은 형태로 금지된 특정 문자가 없는지도 확인합니다. StrictMode 에서 오류가 감지되면 isValid()은 거짓을 반환합니다. 구문 분석 모드 DecodedMode 는 이 컨텍스트에서 허용되지 않습니다.
예시:
QUrl url("http://www.example.com/List of holidays.xml"); // url.toEncoded() == "http://www.example.com/List%20of%20holidays.xml"
인코딩된 문자열에서 URL을 만들려면 fromEncoded()를 사용할 수도 있습니다:
두 함수는 동일하며, Qt 5에서는 두 함수 모두 인코딩된 데이터를 받아들입니다. 일반적으로 QUrl 생성자 또는 setUrl()와 fromEncoded()의 선택은 소스 데이터에 따라 달라집니다: 생성자와 setUrl()는 QString 을 취하는 반면 fromEncoded 은 QByteArray 을 취합니다.
setUrl(), fromEncoded() 및 TolerantMode도 참조하세요 .
[noexcept]
QUrl::QUrl(const QUrl &other)
other 의 복사본을 생성합니다.
[noexcept]
QUrl::QUrl(QUrl &&other)
Move - QUrl 인스턴스를 생성하여 other 가 가리키던 객체와 동일한 객체를 가리키도록 합니다.
[noexcept]
QUrl::~QUrl()
소멸자; 객체가 삭제되기 직전에 호출됩니다.
QUrl QUrl::adjusted(QUrl::FormattingOptions options) const
URL의 조정된 버전을 반환합니다. options 로 플래그를 전달하여 출력을 사용자 정의할 수 있습니다.
QUrl::ComponentFormattingOption 의 인코딩 옵션은 이 메서드에 적합하지 않으며 QUrl::PreferLocalFile 도 마찬가지입니다.
이는 항상 QUrl(url.toString(옵션))와 동일합니다.
FormattingOptions, toEncoded() 및 toString()도 참조하세요 .
QString QUrl::authority(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
URL의 권한이 정의되어 있으면 URL의 권한을 반환하고, 그렇지 않으면 빈 문자열을 반환합니다.
이 함수는 퍼센트 인코딩된 문자와 QString 에서 디코딩된 형식으로 표현할 수 없는 일부 제어 시퀀스를 포함할 수 있는 모호하지 않은 값을 반환합니다.
options 인수는 사용자 정보 컴포넌트의 형식을 지정하는 방법을 제어합니다. QUrl::FullyDecoded 값은 이 함수에서 허용되지 않습니다. 완전히 디코딩된 데이터를 얻으려면 userName(), password(), host() 및 port()를 개별적으로 호출하세요.
setAuthority(), userInfo(), userName(), password(), host() 및 port()도 참조하세요 .
void QUrl::clear()
QUrl 의 내용을 재설정합니다. 이 함수를 호출하면 QUrl 은 기본 빈 생성자를 사용하여 생성된 것과 동일합니다.
isEmpty()도 참조하세요 .
QString QUrl::errorString() const
이 QUrl 객체를 수정한 마지막 작업에서 구문 분석 오류가 발생한 경우 오류 메시지를 반환합니다. 오류가 감지되지 않으면 이 함수는 빈 문자열을 반환하고 isValid()는 true
을 반환합니다.
이 함수가 반환하는 오류 메시지는 본질적으로 기술적이기 때문에 최종 사용자가 이해하지 못할 수도 있습니다. QUrl 이 일부 입력을 허용하지 않는 이유를 이해하려는 개발자에게 주로 유용합니다.
QUrl::ParsingMode도 참조하세요 .
QString QUrl::fileName(QUrl::ComponentFormattingOptions options = FullyDecoded) const
디렉토리 경로를 제외한 파일 이름을 반환합니다.
이 QUrl 객체에 슬래시로 끝나는 경로가 지정되면 파일 이름은 비어 있는 것으로 간주됩니다.
경로에 슬래시가 포함되지 않은 경우 파일 이름이 완전히 반환됩니다.
예시:
QUrl url("http://qt-project.org/support/file.html"); // url.adjusted(RemoveFilename) == "http://qt-project.org/support/" // url.fileName() == "file.html"
options 인수는 파일 이름 구성 요소의 형식을 지정하는 방법을 제어합니다. 모든 값은 모호하지 않은 결과를 생성합니다. QUrl::FullyDecoded 를 사용하면 모든 퍼센트 인코딩된 시퀀스가 디코딩되지만, 그렇지 않으면 반환된 값에 QString 에서 디코딩된 형식으로 표현할 수 없는 일부 제어 시퀀스에 대한 일부 퍼센트 인코딩된 시퀀스가 포함될 수 있습니다.
path()도 참조하세요 .
QString QUrl::fragment(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
URL의 조각을 반환합니다. 구문 분석된 URL에 조각이 포함되어 있는지 확인하려면 hasFragment()를 사용합니다.
options 인수는 조각 구성 요소의 형식을 지정하는 방법을 제어합니다. 모든 값은 모호하지 않은 결과를 생성합니다. QUrl::FullyDecoded 를 사용하면 모든 퍼센트 인코딩된 시퀀스가 디코딩되지만, 그렇지 않으면 반환된 값에 QString 에서 디코딩된 형식으로 표현할 수 없는 일부 제어 시퀀스에 대한 일부 퍼센트 인코딩된 시퀀스가 포함될 수 있습니다.
표현할 수 없는 시퀀스가 있는 경우 QUrl::FullyDecoded 은 데이터 손실을 초래할 수 있습니다. 결과가 URL이 아닌 컨텍스트에서 사용되는 경우 해당 값을 사용하는 것이 좋습니다.
setFragment() 및 hasFragment()도 참조하세요 .
[static, since 6.3]
QString QUrl::fromAce(const QByteArray &domain, QUrl::AceProcessingOptions options = {})
주어진 도메인 이름 domain 의 유니코드 형식을 반환하며, 이 형식은 ACE(ASCII 호환 인코딩)로 인코딩됩니다. options 와 함께 플래그를 전달하여 출력을 사용자 지정할 수 있습니다. 이 함수의 결과는 domain 와 동등한 것으로 간주됩니다.
domain 의 값을 인코딩할 수 없는 경우 QString 로 변환하여 반환합니다.
ASCII 호환 인코딩(ACE)은 RFC 3490, RFC 3491 및 RFC 3492에 정의되어 있으며 유니코드 기술 표준 #46에 의해 업데이트되었습니다. 이는 애플리케이션에서 도메인 이름 국제화(IDNA) 사양의 일부로, 도메인 이름(예: "example.com"
)을 US-ASCII가 아닌 문자를 사용하여 작성할 수 있게 해줍니다.
이 기능은 Qt 6.3에 도입되었습니다.
[static]
QUrl QUrl::fromCFURL(CFURLRef url)
CFURL url 의 복사본이 포함된 QUrl 을 생성합니다.
[static]
QUrl QUrl::fromEncoded(QByteArrayView input, QUrl::ParsingMode mode = TolerantMode)
input 을 구문 분석하고 해당 QUrl 을 반환합니다. input 은 ASCII 문자만 포함된 인코딩된 형식이라고 가정합니다.
mode 를 사용하여 URL을 구문 분석합니다. 이 매개변수에 대한 자세한 내용은 setUrl()를 참조하십시오. QUrl::DecodedMode 은 이 컨텍스트에서 허용되지 않습니다.
참고: 6.7 이전 Qt 버전에서는 이 함수가 QByteArrayView 이 아닌 QByteArray 을 받습니다. 컴파일 오류가 발생하는 경우 코드가 QByteArray 로 암시적으로 변환 가능한 객체를 전달하지만 QByteArrayView 으로는 변환할 수 없는 객체를 전달하고 있기 때문입니다. 해당 인수를 QByteArray{~~~}
로 감싸서 명시적으로 형변환을 하세요. 이 방법은 이전 Qt 버전과 역호환됩니다.
toEncoded() 및 setUrl()도 참조하십시오 .
[static]
QUrl QUrl::fromLocalFile(const QString &localFile)
로컬 파일로 해석된 localFile 의 QUrl 표현을 반환합니다. 이 함수는 이 플랫폼의 기본 구분 기호뿐만 아니라 슬래시로 구분된 경로도 허용합니다.
이 함수는 "//servername/path/to/file.txt"와 같이 원격 파일을 나타내는 두 개의 슬래시(또는 백슬래시)가 있는 경로도 허용합니다. 특정 플랫폼에서만 QFile::open()를 사용하여 이 파일을 실제로 열 수 있다는 점에 유의하세요.
빈 localFile 은 빈 URL로 연결됩니다(Qt 5.4 이후).
qDebug()<< QUrl::fromLocalFile("file.txt"); // QUrl("file:file.txt") qDebug() << QUrl::fromLocalFile("/home/user/file.txt"); // QUrl("file:///home/user/file.txt") qDebug() << QUrl::fromLocalFile("file:file.txt"); // doesn't make sense; expects path, not url with scheme
위 스니펫의 첫 번째 줄에서 파일 URL은 로컬 상대 경로로 구성됩니다. 상대 경로가 포함된 파일 URL은 확인할 기본 URL이 있는 경우에만 의미가 있습니다. 예를 들어
QUrl url = QUrl::fromLocalFile("file.txt"); QUrl baseUrl = QUrl("file:/home/user/"); // 잘못: url에 이미 스키마가 있으므로 QUrl("file:file.txt")을 출력합니다. qDebug() << baseUrl.resolved(url);
이러한 URL을 해결하려면 미리 해당 스키마를 제거해야 합니다:
// correct: 인쇄 QUrl("file:///home/user/file.txt")url.setScheme(QString()); qDebug() << baseUrl.resolved(url);
따라서 상대 파일 경로에는 상대 URL(즉, 스키마 없음)을 사용하는 것이 좋습니다:
QUrl url = QUrl("file.txt"); QUrl baseUrl = QUrl("file:/home/user/"); // prints QUrl("file:///home/user/file.txt") qDebug() << baseUrl.resolved(url);
toLocalFile(), isLocalFile() 및 QDir::toNativeSeparators()도 참조하세요 .
[static]
QUrl QUrl::fromNSURL(const NSURL *url)
NSURL url 의 복사본이 포함된 QUrl 을 구축합니다.
[static]
QString QUrl::fromPercentEncoding(const QByteArray &input)
input 의 디코딩된 사본을 반환합니다. input 은 먼저 퍼센트 인코딩에서 디코딩된 다음 UTF-8에서 유니코드로 변환됩니다.
참고: 유효하지 않은 입력(예: 유효한 16진수가 아닌 "%G5" 시퀀스가 포함된 문자열)이 주어지면 출력도 유효하지 않습니다. 예를 들어 "%G5" 시퀀스는 'W'로 디코딩될 수 있습니다.
[static]
QList<QUrl> QUrl::fromStringList(const QStringList &urls, QUrl::ParsingMode mode = TolerantMode)
QUrl(str, mode)을 사용하여 urls 을 나타내는 문자열 목록을 URL 목록으로 변환합니다. 모든 문자열은 로컬 경로가 아닌 URL이어야 한다는 점에 유의하세요.
[static]
QUrl QUrl::fromUserInput(const QString &userInput, const QString &workingDirectory = QString(), QUrl::UserInputResolutionOptions options = DefaultResolution)
사용자가 제공한 userInput 문자열에서 유효한 URL을 추론할 수 있는 경우 반환합니다. 추론할 수 없는 경우 잘못된 QUrl()가 반환됩니다.
이를 통해 사용자는 일반 문자열 형태의 URL 또는 로컬 파일 경로를 입력할 수 있습니다. 이 문자열은 위치 표시줄에 수동으로 입력하거나 클립보드에서 가져오거나 명령줄 인수를 통해 전달할 수 있습니다.
문자열이 이미 유효한 URL이 아닌 경우 다양한 가정을 통해 최선의 추측을 수행합니다.
문자열이 시스템에서 유효한 파일 경로에 해당하는 경우 QUrl::fromLocalFile()를 사용하여 file:// URL이 만들어집니다.
그렇지 않은 경우 문자열을 http:// 또는 ftp:// URL로 변환하려고 시도합니다. 문자열이 'ftp'로 시작하는 경우 후자가 사용됩니다. 그런 다음 결과는 QUrl 의 허용 구문 분석기를 통과하고, 성공하면 유효한 QUrl 이 반환되고, 그렇지 않으면 QUrl()가 반환됩니다.
예제:
- qt-project.org는 http://qt-project.org
- ftp.qt-project.org는 ftp://ftp.qt-project.org가 됩니다.
- 호스트 이름은 http://hostname
- /home/user/test.html은 file:///home/user/test.html이 됩니다.
상대 경로를 처리할 수 있도록 이 메서드는 workingDirectory 경로를 선택적으로 사용합니다. 이는 명령줄 인수를 처리할 때 특히 유용합니다. workingDirectory 이 비어 있으면 상대 경로 처리가 수행되지 않습니다.
기본적으로 상대 경로처럼 보이는 입력 문자열은 파일이 지정된 작업 디렉터리에 실제로 존재하는 경우에만 그렇게 처리됩니다. 애플리케이션이 아직 존재하지 않는 파일을 처리할 수 있는 경우 options 에 AssumeLocalFile 플래그를 전달해야 합니다.
bool QUrl::hasFragment() const
이 URL에 조각이 포함된 경우(즉, #이 표시된 경우) true
을 반환합니다.
fragment() 및 setFragment()도 참조하세요 .
bool QUrl::hasQuery() const
이 URL에 쿼리가 포함된 경우(즉, ?이 표시된 경우) true
을 반환합니다.
setQuery(), query() 및 hasFragment()도 참조하세요 .
QString QUrl::host(QUrl::ComponentFormattingOptions options = FullyDecoded) const
URL의 호스트가 정의되어 있으면 해당 호스트를 반환하고, 그렇지 않으면 빈 문자열을 반환합니다.
options 인수는 호스트 이름의 형식 지정 방법을 제어합니다. QUrl::EncodeUnicode 옵션을 사용하면 이 함수는 8비트 클린이 아니거나 레거시 호스트명이 필요한 채널(예: DNS 요청 또는 HTTP 요청 헤더)에서 사용하기에 적합한 ACE(ASCII 호환 인코딩) 형식의 호스트명을 반환합니다. 해당 플래그가 없는 경우 이 함수는 허용되는 최상위 도메인 목록에 따라 유니코드 형식의 국제 도메인 이름(IDN)을 반환합니다( idnWhitelist() 참조).
다른 모든 플래그는 무시됩니다. 호스트 이름에는 제어 문자나 퍼센트 문자를 포함할 수 없으므로 반환된 값은 완전히 디코딩된 것으로 간주할 수 있습니다.
setHost(), idnWhitelist(), setIdnWhitelist() 및 authority()도 참조하세요 .
[static]
QStringList QUrl::idnWhitelist()
구성에 ASCII가 아닌 문자를 사용할 수 있는 최상위 도메인의 현재 화이트리스트를 반환합니다.
이 목록의 근거는 setIdnWhitelist()를 참조하세요.
setIdnWhitelist() 및 AceProcessingOption 을참조하세요 .
bool QUrl::isEmpty() const
URL에 데이터가 없는 경우 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
clear()도 참조하세요 .
bool QUrl::isLocalFile() const
이 URL이 로컬 파일 경로를 가리키는 경우 true
을 반환합니다. 스키마가 "file"인 경우 URL은 로컬 파일 경로입니다.
이 함수는 최종 파일 경로가 QFile::open()로 열 수 없는 경우에도 호스트명이 포함된 URL을 로컬 파일 경로로 간주합니다.
fromLocalFile() 및 toLocalFile()도 참조하세요 .
bool QUrl::isParentOf(const QUrl &childUrl) const
이 URL이 childUrl 의 부모인 경우 true
을 반환합니다. 두 URL이 동일한 체계와 권한을 공유하고 이 URL의 경로가 childUrl 경로의 부모인 경우 childUrl 은 이 URL의 자식입니다.
bool QUrl::isRelative() const
URL이 상대 참조인 경우 true
을 반환하고, 그렇지 않으면 false
을 반환합니다. URL의 체계가 정의되지 않은 경우 상대 참조이므로 이 함수는 scheme()를 호출하는 것과 같습니다.isEmpty().
상대 참조는 RFC 3986 섹션 4.2에 정의되어 있습니다.
Relative URLs vs Relative Paths 를참조하세요 .
bool QUrl::isValid() const
URL이 비어 있지 않고 유효하면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
URL은 적합성 테스트를 통해 실행됩니다. URL이 유효한 것으로 보고되려면 URL의 모든 부분이 URI 표준의 표준 인코딩 규칙을 준수해야 합니다.
bool checkUrl(const QUrl &url) { if (!url.isValid()) { qDebug("Invalid URL: %s", qUtf8Printable(url.toString())); 반환 거짓; } 반환 참; }
bool QUrl::matches(const QUrl &url, QUrl::FormattingOptions options) const
이 URL과 지정된 url 에 options 을 적용한 후 둘이 같으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
이는 두 URL에서 adjusted(옵션)을 호출하고 결과 URL을 비교하는 것과 동일하지만 더 빠릅니다.
QString QUrl::password(QUrl::ComponentFormattingOptions options = FullyDecoded) const
URL의 비밀번호가 정의되어 있으면 반환하고, 그렇지 않으면 빈 문자열이 반환됩니다.
options 인수는 사용자 이름 구성 요소의 서식을 지정하는 방법을 제어합니다. 모든 값은 모호하지 않은 결과를 생성합니다. QUrl::FullyDecoded 를 사용하면 모든 퍼센트 인코딩된 시퀀스가 디코딩되지만, 그렇지 않으면 반환된 값에 QString 에서 디코딩된 형식으로 표현할 수 없는 일부 제어 시퀀스에 대한 일부 퍼센트 인코딩된 시퀀스가 포함될 수 있습니다.
표현할 수 없는 시퀀스가 있는 경우 QUrl::FullyDecoded 은 데이터 손실을 초래할 수 있습니다. QAuthenticator 에서 설정하거나 로그인을 협상하는 등 URL이 아닌 컨텍스트에서 결과를 사용할 때는 해당 값을 사용하는 것이 좋습니다.
setPassword()도 참조하세요 .
QString QUrl::path(QUrl::ComponentFormattingOptions options = FullyDecoded) const
URL의 경로를 반환합니다.
qDebug()<< QUrl("file:file.txt").path(); // "file.txt" qDebug() << QUrl("/home/user/file.txt").path(); // "/home/user/file.txt" qDebug() << QUrl("http://www.example.com/test/123").path(); // "/test/123"
options 인수는 경로 컴포넌트의 형식을 지정하는 방법을 제어합니다. 모든 값은 모호하지 않은 결과를 생성합니다. QUrl::FullyDecoded 를 사용하면 모든 퍼센트 인코딩된 시퀀스가 디코딩되지만, 그렇지 않으면 반환된 값에 QString 에서 디코딩된 형식으로 표현할 수 없는 일부 제어 시퀀스에 대한 일부 퍼센트 인코딩된 시퀀스가 포함될 수 있습니다.
표현할 수 없는 시퀀스가 있는 경우 QUrl::FullyDecoded 은 데이터 손실을 초래할 수 있습니다. FTP 서버로 전송하는 등 결과가 URL이 아닌 컨텍스트에서 사용되는 경우에는 해당 값을 사용하는 것이 좋습니다.
데이터 손실의 예로는 유니코드가 아닌 퍼센트 인코딩된 시퀀스가 있는데 FullyDecoded (기본값)을 사용하는 경우를 들 수 있습니다:
이 예에서는 %FF
을 변환할 수 없기 때문에 어느 정도의 데이터 손실이 발생합니다.
경로에 하위 구분자(예: +
)가 포함된 경우에도 데이터 손실이 발생할 수 있습니다:
기타 디코딩 예시
const QUrl url("/tmp/Mambo %235%3F.mp3"); qDebug() << url.path(QUrl::FullyDecoded); // "/tmp/Mambo #5?.mp3" qDebug() << url.path(QUrl::PrettyDecoded); // "/tmp/Mambo #5?.mp3" qDebug() << url.path(QUrl::FullyEncoded); // "/tmp/Mambo%20%235%3F.mp3"
setPath()도 참조하세요 .
int QUrl::port(int defaultPort = -1) const
URL의 포트를 반환하거나, 포트가 지정되지 않은 경우 defaultPort 을 반환합니다.
예제:
QTcpSocket sock; sock.connectToHost(url.host(), url.port(80));
setPort()도 참조하세요 .
QString QUrl::query(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
쿼리 문자열이 있으면 URL의 쿼리 문자열을 반환하고, 없으면 빈 결과를 반환합니다. 구문 분석된 URL에 쿼리 문자열이 포함되어 있는지 확인하려면 hasQuery()를 사용합니다.
options 인수는 쿼리 구성 요소의 형식을 지정하는 방법을 제어합니다. 모든 값은 모호하지 않은 결과를 생성합니다. QUrl::FullyDecoded 을 사용하면 모든 퍼센트 인코딩된 시퀀스가 디코딩되지만, 그렇지 않으면 반환된 값에 QString 에서 디코딩된 형식으로 표현할 수 없는 일부 제어 시퀀스에 대한 일부 퍼센트 인코딩된 시퀀스가 포함될 수 있습니다.
쿼리에는 더하기 문자('+')를 나타내기 위해 "%2B" 시퀀스를 사용하는 등 퍼센트 인코딩된 상태로 유지되어야 하는 데이터가 포함되는 경우가 많으므로 쿼리에 QUrl::FullyDecoded 를 사용하는 것은 권장되지 않습니다.
setQuery() 및 hasQuery()도 참조하세요 .
QUrl QUrl::resolved(const QUrl &relative) const
이 URL을 relative 와 병합한 결과를 반환합니다. 이 URL은 relative 을 절대 URL로 변환하기 위한 기준으로 사용됩니다.
relative 이 상대 URL이 아닌 경우 이 함수는 relative 을 직접 반환합니다. 그렇지 않으면 두 URL의 경로가 병합되고 반환되는 새 URL은 다음 예제에서와 같이 기본 URL의 체계와 권한을 가지지만 병합된 경로를 갖습니다:
QUrl baseUrl("http://qt.digia.com/Support/");QUrl relativeUrl("../Product/Library/");qDebug(baseUrl.resolved(relativeUrl).toString()); // 출력 "http://qt.digia.com/Product/Library/"
".."와 함께 resolved()를 호출하면 원래 디렉터리보다 한 단계 높은 QUrl 가 반환됩니다. 마찬가지로 "../.."로 resolved()를 호출하면 경로에서 두 수준이 제거됩니다. relative 가 "/"인 경우 경로는 "/"가 됩니다.
isRelative()도 참조하세요 .
QString QUrl::scheme() const
URL의 스키마를 반환합니다. 빈 문자열이 반환되면 스키마가 정의되지 않았으며 URL이 상대적이라는 의미입니다.
스키마에는 US-ASCII 문자 또는 숫자만 포함할 수 있으므로 인코딩이 필요한 문자는 포함할 수 없습니다. 또한 스키마는 항상 소문자 형식으로 반환됩니다.
setScheme() 및 isRelative()도 참조하세요 .
void QUrl::setAuthority(const QString &authority, QUrl::ParsingMode mode = TolerantMode)
URL의 권한을 authority 로 설정합니다.
URL의 권한은 사용자 정보, 호스트 이름 및 포트의 조합입니다. 이러한 요소는 모두 선택 사항이므로 권한이 비어 있어도 유효합니다.
사용자 정보와 호스트는 '@'로 구분하고 호스트와 포트는 ':'로 구분합니다. 사용자 정보가 비어 있으면 '@'를 생략해야 하지만 포트가 비어 있으면 ':'를 사용할 수 있습니다.
다음 예는 유효한 권한 문자열을 보여줍니다:
authority 데이터는 mode: StrictMode 에서 '%' 문자 뒤에는 정확히 두 개의 16진수 문자가 와야 하며 일부 문자(공백 포함)는 디코딩되지 않은 형태로 허용되지 않습니다. TolerantMode (기본값)에서는 모든 문자가 디코딩되지 않은 형태로 허용되며, 허용되는 구문 분석기는 두 개의 16진수 문자가 뒤에 오지 않는 '%'를 수정합니다.
이 함수는 mode 이 QUrl::DecodedMode 이 되는 것을 허용하지 않습니다. 완전히 디코딩된 데이터를 설정하려면 setUserName(), setPassword(), setHost() 및 setPort()를 개별적으로 호출하세요.
authority(), setUserInfo(), setHost() 및 setPort()도 참조하세요 .
void QUrl::setFragment(const QString &fragment, QUrl::ParsingMode mode = TolerantMode)
URL의 조각을 fragment 으로 설정합니다. 조각은 URL의 마지막 부분으로, '#' 뒤에 오는 문자열로 표시됩니다. 일반적으로 HTTP에서 페이지의 특정 링크나 지점을 참조하는 데 사용됩니다:
이 조각은 URL "참조"라고도 합니다.
QString() 인수(null QString)를 전달하면 조각이 설정 해제됩니다. QString ("")(비어 있지만 널이 아닌 QString)의 인수를 전달하면 조각이 빈 문자열로 설정됩니다(원래 URL에 "#"이 하나만 있는 경우처럼).
fragment 데이터는 mode 에 따라 해석됩니다. StrictMode 에서 '%' 문자 뒤에는 정확히 두 개의 16진수 문자가 와야 하며 일부 문자(공백 포함)는 디코딩되지 않은 형태로 허용되지 않습니다. TolerantMode 에서는 모든 문자가 디코딩되지 않은 형태로 허용되며 허용되는 구문 분석기는 두 개의 16진수 문자가 뒤에 오지 않는 '%'를 수정합니다. DecodedMode 에서 '%'는 그 자체를 나타내며 인코딩된 문자는 사용할 수 없습니다.
QUrl::DecodedMode 는 URL이 아닌 데이터 소스에서 조각을 설정하거나 QUrl::FullyDecoded 서식 옵션을 사용하여 fragment()를 호출하여 얻은 조각을 설정할 때 사용해야 합니다.
fragment() 및 hasFragment()도 참조하세요 .
void QUrl::setHost(const QString &host, QUrl::ParsingMode mode = DecodedMode)
URL의 호스트를 host 로 설정합니다. 호스트는 권한의 일부입니다.
host 데이터는 mode 에 따라 해석됩니다. StrictMode 에서 모든 '%' 문자 뒤에는 정확히 두 개의 16진수 문자가 와야 하며 일부 문자(공백 포함)는 디코딩되지 않은 형태로 허용되지 않습니다. TolerantMode 에서는 모든 문자가 디코딩되지 않은 형태로 허용되며 허용되는 구문 분석기는 두 개의 16진수 문자가 뒤에 오지 않는 '%'를 수정합니다. DecodedMode 에서 '%'는 그 자체를 나타내며 인코딩된 문자는 사용할 수 없습니다.
모든 경우에 구문 분석 결과는 국제화된 리소스 식별자 사양(RFC 3987)에 의해 수정된 STD 3 규칙에 따라 유효한 호스트 이름이어야 합니다. 잘못된 호스트명은 허용되지 않으며 isValid()를 거짓으로 만들게 됩니다.
host() 및 setAuthority()도 참조하세요 .
[static]
void QUrl::setIdnWhitelist(const QStringList &list)
도메인에 ASCII가 아닌 문자를 사용할 수 있는 최상위 도메인(TLD)의 화이트리스트를 list 의 값으로 설정합니다.
이 함수를 호출하는 경우 idnWhitelist()에 액세스할 수 있는 스레드를 시작하기 전에 이 함수를 호출해야 합니다.
Qt에는 국제화 도메인 이름(IDN)을 지원하는 인터넷 최상위 도메인과 비슷하게 보이는 문자(예: 라틴 소문자 'a'
와 키릴 문자, 대부분의 폰트에서 시각적으로 동일함) 사이에서 속임수가 발생하지 않도록 보장하는 규칙이 포함된 기본 목록이 함께 제공됩니다.
이 목록은 등록기관이 새로운 규칙을 발표할 때마다 주기적으로 유지 관리됩니다.
이 기능은 TLD를 추가하거나 제거하기 위해 목록을 조작해야 하는 사용자를 위해 제공됩니다. 사용자가 보안 위험에 노출될 수 있으므로 테스트 이외의 목적으로 값을 변경하지 않는 것이 좋습니다.
idnWhitelist()도 참조하세요 .
void QUrl::setPassword(const QString &password, QUrl::ParsingMode mode = DecodedMode)
URL의 비밀번호를 password 로 설정합니다. password 은 setUserInfo()에 설명된 대로 URL 권한에 있는 사용자 정보 요소의 일부입니다.
password 데이터는 mode 에 따라 해석됩니다. StrictMode 에서 '%' 문자 뒤에는 정확히 두 개의 16진수 문자가 와야 하며 일부 문자(공백 포함)는 디코딩되지 않은 형태로 허용되지 않습니다. TolerantMode 에서는 모든 문자가 디코딩되지 않은 형태로 허용되며 허용되는 구문 분석기는 두 개의 16진수 문자가 뒤에 오지 않는 '%'를 수정합니다. DecodedMode 에서 '%'는 그 자체를 나타내며 인코딩된 문자는 사용할 수 없습니다.
QUrl::DecodedMode 는 사용자에게 표시되는 비밀번호 대화상자나 QUrl::FullyDecoded 서식 옵션으로 password()를 호출하여 얻은 비밀번호와 같이 URL이 아닌 데이터 소스에서 비밀번호를 설정할 때 사용해야 합니다.
password() 및 setUserInfo()도 참조하세요 .
void QUrl::setPath(const QString &path, QUrl::ParsingMode mode = DecodedMode)
URL의 경로를 path 로 설정합니다. 경로는 URL에서 권한 뒤에 오는 부분이지만 쿼리 문자열 앞에 오는 부분입니다.
계층 구조가 아닌 스키마의 경우 경로는 다음 예제에서와 같이 스키마 선언 다음에 오는 모든 부분이 됩니다:
path 데이터는 mode 에 따라 해석됩니다. StrictMode 에서 '%' 문자 뒤에는 정확히 두 개의 16진수 문자가 와야 하며 일부 문자(공백 포함)는 디코딩되지 않은 형태로 허용되지 않습니다. TolerantMode 에서는 모든 문자가 디코딩되지 않은 형태로 허용되며 허용되는 구문 분석기는 두 개의 16진수 문자가 뒤에 오지 않는 '%'를 수정합니다. DecodedMode 에서 '%'는 그 자체를 나타내며 인코딩된 문자는 사용할 수 없습니다.
QUrl::DecodedMode 는 사용자에게 표시되는 대화 상자 또는 QUrl::FullyDecoded 서식 옵션을 사용하여 path()를 호출하여 얻은 경로와 같이 URL이 아닌 데이터 소스에서 경로를 설정할 때 사용해야 합니다.
path()도 참조하세요 .
void QUrl::setPort(int port)
URL의 포트를 port 로 설정합니다. 포트는 setAuthority()에 설명된 대로 URL 권한의 일부입니다.
port 포트는 0에서 65535 사이여야 합니다. 포트를 -1로 설정하면 포트가 지정되지 않았음을 나타냅니다.
port()도 참조하세요 .
void QUrl::setQuery(const QString &query, QUrl::ParsingMode mode = TolerantMode)
URL의 쿼리 문자열을 query 로 설정합니다.
이 함수는 키-값 패턴에 맞지 않거나 QUrl 에서 제안하는 것과 다른 특수 문자 인코딩 체계를 사용하는 쿼리 문자열을 전달해야 하는 경우에 유용합니다.
QString() 값을 query (null QString)에 전달하면 쿼리가 완전히 설정 해제됩니다. 그러나 QString("") 값을 전달하면 원래 URL에 "?"가 있는 것처럼 쿼리가 빈 값으로 설정됩니다.
query 데이터는 mode 에 따라 해석됩니다. StrictMode 에서 '%' 문자 뒤에는 정확히 두 개의 16진수 문자가 와야 하며 일부 문자(공백 포함)는 디코딩되지 않은 형태로 허용되지 않습니다. TolerantMode 에서는 모든 문자가 디코딩되지 않은 형태로 허용되며 허용되는 구문 분석기는 두 개의 16진수 문자가 뒤에 오지 않는 '%'를 수정합니다. DecodedMode 에서 '%'는 그 자체를 나타내며 인코딩된 문자는 사용할 수 없습니다.
쿼리 문자열에는 %로 인코딩된 시퀀스가 포함되는 경우가 많으므로 DecodedMode 을 사용하지 않는 것이 좋습니다. 주의해야 할 특수 시퀀스 중 하나는 더하기 문자('+')입니다. QUrl 은 웹 브라우저에 게시된 HTML 양식은 공백을 더하기 문자로 변환하지만 은 공백을 더하기 문자로 변환하지 않습니다. 쿼리에서 실제 더하기 문자를 나타내기 위해 일반적으로 "%2B" 시퀀스가 사용됩니다. 이 함수는 TolerantMode 또는 StrictMode 에서 "%2B" 시퀀스를 그대로 유지합니다.
void QUrl::setQuery(const QUrlQuery &query)
이 함수는 오버로드된 함수입니다.
URL의 쿼리 문자열을 query 로 설정합니다.
이 함수는 QUrlQuery 객체에서 쿼리 문자열을 재구성하여 이 QUrl 객체에 설정합니다. QUrlQuery 에는 이미 파싱된 데이터가 포함되어 있으므로 이 함수에는 파싱 매개 변수가 없습니다.
void QUrl::setScheme(const QString &scheme)
URL의 스키마를 scheme 로 설정합니다. 스키마에는 ASCII 문자만 포함할 수 있으므로 입력에 대한 변환이나 디코딩이 수행되지 않습니다. 또한 ASCII 문자로 시작해야 합니다.
스키마는 URL의 유형(또는 프로토콜)을 설명합니다. 이는 URL 시작 부분에 하나 이상의 ASCII 문자로 표시됩니다.
스키마는 RFC 3986을 엄격하게 준수합니다: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
다음 예는 스키마가 "ftp"인 URL을 보여줍니다:
스키마를 설정하기 위해 다음 호출이 사용됩니다:
QUrl url; url.setScheme("ftp");
스키마는 비어 있을 수도 있으며, 이 경우 URL은 상대적인 것으로 해석됩니다.
scheme() 및 isRelative()도 참조하세요 .
void QUrl::setUrl(const QString &url, QUrl::ParsingMode parsingMode = TolerantMode)
url 을 구문 분석하고 이 객체를 해당 값으로 설정합니다. QUrl 은 URL에서 허용되지 않는 모든 문자를 자동으로 퍼센트 인코딩하고 예약되지 않은 문자(문자, 숫자, 하이픈, 밑줄, 점 및 물결표)를 나타내는 퍼센트 인코딩된 시퀀스를 디코딩합니다. 다른 모든 문자는 원래 형태로 남습니다.
파서 모드 parsingMode 를 사용하여 url 를 파싱합니다. TolerantMode (기본값)에서 QUrl 은 특정 오류, 특히 두 개의 16진수 뒤에 오지 않은 퍼센트 문자('%')가 있는 경우 이를 수정하며 모든 위치의 모든 문자를 허용합니다. StrictMode 에서는 인코딩 오류가 허용되지 않으며 QUrl 에서는 인코딩되지 않은 형태로 금지된 특정 문자가 없는지 확인합니다. StrictMode 에서 오류가 감지되면 isValid()은 거짓을 반환합니다. 구문 분석 모드 DecodedMode 는 이 컨텍스트에서 허용되지 않으며 런타임 경고를 생성합니다.
void QUrl::setUserInfo(const QString &userInfo, QUrl::ParsingMode mode = TolerantMode)
URL의 사용자 정보를 userInfo 로 설정합니다. 사용자 정보는 setAuthority()에 설명된 대로 URL 권한의 선택적 부분입니다.
사용자 정보는 사용자 이름과 선택적으로 ':'로 구분된 비밀번호로 구성됩니다. 비밀번호가 비어 있으면 콜론을 생략해야 합니다. 다음 예는 유효한 사용자 정보 문자열을 보여줍니다:
userInfo 데이터는 mode: StrictMode 에서 '%' 문자 뒤에는 정확히 두 개의 16진수 문자가 와야 하며 일부 문자(공백 포함)는 디코딩되지 않은 형태로 허용되지 않습니다. TolerantMode (기본값)에서는 모든 문자가 디코딩되지 않은 형태로 허용되며, 허용되는 구문 분석기는 두 개의 16진수 문자가 뒤에 오지 않는 '%'를 수정합니다.
이 함수는 mode 이 QUrl::DecodedMode 이 되는 것을 허용하지 않습니다. 완전히 디코딩된 데이터를 설정하려면 setUserName() 및 setPassword()를 개별적으로 호출하세요.
userInfo(), setUserName(), setPassword() 및 setAuthority()도 참조하세요 .
void QUrl::setUserName(const QString &userName, QUrl::ParsingMode mode = DecodedMode)
URL의 사용자 이름을 userName 로 설정합니다. userName 은 setUserInfo()에 설명된 대로 URL 권한의 사용자 정보 요소의 일부입니다.
userName 데이터는 mode 에 따라 해석됩니다. StrictMode 에서 '%' 문자 뒤에는 정확히 두 개의 16진수 문자가 와야 하며 일부 문자(공백 포함)는 디코딩되지 않은 형태로 허용되지 않습니다. TolerantMode (기본값)에서는 모든 문자가 디코딩되지 않은 형태로 허용되며, 허용되는 구문 분석기는 두 개의 16진수 문자가 뒤에 오지 않는 '%'를 수정합니다. DecodedMode 에서 '%'는 그 자체를 나타내며 인코딩된 문자는 사용할 수 없습니다.
QUrl::DecodedMode 는 사용자에게 표시되는 비밀번호 대화상자나 QUrl::FullyDecoded 서식 옵션을 사용하여 userName()를 호출하여 얻은 사용자 이름과 같이 URL이 아닌 데이터 소스에서 사용자 이름을 설정할 때 사용해야 합니다.
userName() 및 setUserInfo()도 참조하세요 .
[noexcept]
void QUrl::swap(QUrl &other)
이 URL을 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.
[static, since 6.3]
QByteArray QUrl::toAce(const QString &domain, QUrl::AceProcessingOptions options = {})
주어진 도메인 이름의 ASCII 호환 인코딩을 반환합니다 domain. options 와 함께 플래그를 전달하여 출력을 사용자 정의할 수 있습니다. 이 함수의 결과는 domain 와 동등한 것으로 간주됩니다.
ASCII 호환 인코딩(ACE)은 RFC 3490, RFC 3491 및 RFC 3492에 정의되어 있으며 유니코드 기술 표준 #46에 의해 업데이트되었습니다. 이는 애플리케이션에서 도메인 이름 국제화(IDNA) 사양의 일부로, 도메인 이름(예: "example.com"
)을 US-ASCII가 아닌 문자를 사용하여 작성할 수 있도록 합니다.
domain 이 유효한 호스트 네임이 아닌 경우 이 함수는 빈 QByteArray 을 반환합니다. 특히 IPv6 리터럴은 유효한 도메인 이름이 아니라는 점에 유의하세요.
이 함수는 Qt 6.3에 도입되었습니다.
CFURLRef QUrl::toCFURL() const
QUrl 에서 CFURL을 생성합니다.
호출자는 CFURL을 소유하며 이를 릴리스할 책임이 있습니다.
QString QUrl::toDisplayString(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const
URL의 사람이 볼 수 있는 문자열 표현을 반환합니다. options 와 함께 플래그를 전달하여 출력을 사용자 지정할 수 있습니다. 비밀번호가 사용자에게 다시 표시되지 않아야 하므로 RemovePassword 옵션은 항상 활성화됩니다.
기본 옵션을 사용하면 결과 QString 을 나중에 QUrl 으로 다시 전달할 수 있지만 처음에 있던 비밀번호는 모두 손실됩니다.
FormattingOptions, toEncoded() 및 toString()도 참조하세요 .
QByteArray QUrl::toEncoded(QUrl::FormattingOptions options = FullyEncoded) const
URL이 유효하면 인코딩된 표현을 반환하고, 그렇지 않으면 빈 QByteArray 을 반환합니다. options 와 함께 플래그를 전달하여 출력을 사용자 지정할 수 있습니다.
사용자 정보, 경로 및 조각은 모두 UTF-8로 변환되고, ASCII가 아닌 모든 문자는 퍼센트 인코딩됩니다. 호스트 이름은 Punycode를 사용하여 인코딩됩니다.
QString QUrl::toLocalFile() const
로컬 파일 경로로 포맷된 이 URL의 경로를 반환합니다. 반환되는 경로는 원래 백슬래시가 있는 경로에서 생성된 경로라도 슬래시를 사용합니다.
이 URL에 비어 있지 않은 호스트명이 포함된 경우 반환되는 값은 SMB 네트워크에서 볼 수 있는 형식(예: "//servername/path/to/file.txt")으로 인코딩됩니다.
qDebug()<< QUrl("file:file.txt").toLocalFile(); // "file.txt" qDebug() << QUrl("file:/home/user/file.txt").toLocalFile(); // "/home/user/file.txt" qDebug() << QUrl("file.txt").toLocalFile(); // ""; wasn't a local file as it had no scheme
참고: 이 URL의 경로 구성 요소에 UTF-8이 아닌 이진 시퀀스(예: %80)가 포함되어 있으면 이 함수의 동작이 정의되지 않습니다.
fromLocalFile() 및 isLocalFile()도 참조하세요 .
NSURL *QUrl::toNSURL() const
QUrl 에서 NSURL을 생성합니다.
NSURL은 자동으로 릴리스됩니다.
[static]
QByteArray QUrl::toPercentEncoding(const QString &input, const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray())
input 의 인코딩된 복사본을 반환합니다. input 은 먼저 UTF-8로 변환되고 예약되지 않은 그룹에 속하지 않은 모든 ASCII 문자는 퍼센트 인코딩됩니다. 문자가 퍼센트 인코딩되지 않도록 하려면 exclude 으로 전달하세요. 문자가 퍼센트 인코딩되도록 하려면 include 으로 전달하세요.
예약되지 않음은 다음과 같이 정의됩니다: ALPHA / DIGIT / "-" / "." / "_" / "~"
QByteArray ba = QUrl::toPercentEncoding("{비린내 나는 문자열?}", "{}", "s");qDebug(ba.constData()); // 인쇄 "{a fi%73hy %73tring%3F}"
QString QUrl::toString(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const
URL의 문자열 표현을 반환합니다. options 와 함께 플래그를 전달하여 출력을 사용자 지정할 수 있습니다. QUrl::FullyDecoded 옵션은 모호한 데이터를 생성할 수 있으므로 이 함수에서는 허용되지 않습니다.
기본 서식 옵션은 PrettyDecoded 입니다.
FormattingOptions, url() 및 setUrl()도 참조하세요 .
[static]
QStringList QUrl::toStringList(const QList<QUrl> &urls, QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded))
toString(options)를 사용하여 urls 목록을 QString 개체 목록으로 변환합니다.
QString QUrl::url(QUrl::FormattingOptions options = FormattingOptions(PrettyDecoded)) const
URL의 문자열 표현을 반환합니다. options 와 함께 플래그를 전달하여 출력을 사용자 지정할 수 있습니다. QUrl::FullyDecoded 옵션은 모호한 데이터를 생성할 수 있으므로 이 함수에서는 허용되지 않습니다.
결과 QString 는 나중에 QUrl 로 다시 전달할 수 있습니다.
toString(옵션)의 동의어입니다.
setUrl(), FormattingOptions, toEncoded() 및 toString()도 참조하세요 .
QString QUrl::userInfo(QUrl::ComponentFormattingOptions options = PrettyDecoded) const
URL의 사용자 정보를 반환하거나 사용자 정보가 정의되지 않은 경우 빈 문자열을 반환합니다.
이 함수는 퍼센트 인코딩된 문자와 QString 에서 디코딩된 형식으로 표현할 수 없는 일부 제어 시퀀스를 포함할 수 있는 모호하지 않은 값을 반환합니다.
options 인수는 사용자 정보 컴포넌트의 형식을 지정하는 방법을 제어합니다. QUrl::FullyDecoded 값은 이 함수에서 허용되지 않습니다. 완전히 디코딩된 데이터를 얻으려면 userName() 및 password()를 개별적으로 호출하세요.
setUserInfo(), userName(), password() 및 authority()도 참조하세요 .
QString QUrl::userName(QUrl::ComponentFormattingOptions options = FullyDecoded) const
URL의 사용자 이름이 정의되어 있으면 사용자 이름을 반환하고, 그렇지 않으면 빈 문자열을 반환합니다.
options 인수는 사용자 이름 구성 요소의 형식을 지정하는 방법을 제어합니다. 모든 값은 모호하지 않은 결과를 생성합니다. QUrl::FullyDecoded 를 사용하면 모든 퍼센트 인코딩된 시퀀스가 디코딩되지만, 그렇지 않으면 반환된 값에 QString 에서 디코딩된 형식으로 표현할 수 없는 일부 제어 시퀀스에 대한 일부 퍼센트 인코딩된 시퀀스가 포함될 수 있습니다.
표현할 수 없는 시퀀스가 있는 경우 QUrl::FullyDecoded 은 데이터 손실을 초래할 수 있습니다. QAuthenticator 에서 설정하거나 로그인을 협상하는 등 URL이 아닌 컨텍스트에서 결과를 사용할 때는 해당 값을 사용하는 것이 좋습니다.
setUserName() 및 userInfo()도 참조하세요 .
[noexcept]
QUrl &QUrl::operator=(QUrl &&other)
이동-이 other 인스턴스를 QUrl 인스턴스에 할당합니다.
QUrl &QUrl::operator=(const QString &url)
지정된 url 을 이 개체에 할당합니다.
[noexcept]
QUrl &QUrl::operator=(const QUrl &url)
지정된 url 을 이 개체에 할당합니다.
관련 비회원
[noexcept]
bool operator!=(const QUrl &lhs, const QUrl &rhs)
lhs 과 rhs URL이 같지 않으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
matches()도 참조하세요 .
QDataStream &operator<<(QDataStream &out, const QUrl &url)
URL url 을 out 스트림에 쓰고 스트림에 대한 참조를 반환합니다.
QDataStream 연산자 형식을참조하세요 .
[noexcept]
bool operator==(const QUrl &lhs, const QUrl &rhs)
lhs 과 rhs URL이 같으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
matches()도 참조하세요 .
QDataStream &operator>>(QDataStream &in, QUrl &url)
in 스트림에서 url 로의 URL을 읽고 스트림에 대한 참조를 반환합니다.
QDataStream 연산자의 형식도참조하세요 .
매크로 문서
QT_NO_URL_CAST_FROM_STRING
QString (또는 문자 *)에서 QUrl 로의 자동 변환을 비활성화합니다.
이 정의를 사용하여 코드를 컴파일하면 파일 이름에 QString 을 사용하는 코드가 많은 경우 네트워크 투명성을 위해 QUrl 을 사용하도록 변환하려는 경우에 유용합니다. QUrl 을 사용하는 모든 코드에서 QUrl::resolved() 호출이 누락되거나 QString 에서 QUrl 로의 변환이 오용되는 것을 방지할 수 있습니다.
예를 들어 다음과 같은 코드가 있는 경우
url = filename; // probably not what you want
와 같은 코드가 있다면 다음과 같이 다시 작성할 수 있습니다.
QT_NO_CAST_FROM_ASCII 를참조하세요 .
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.