QUrl의 일부를 유니 코드로 변환하고 싶습니다.QString 또는 QUrl을 유니 코드로 변환
나는 주어진 URL이 www.ÄSDF.de
이고 www.%C4SDF.de
으로 변환하고 싶습니다. Qt에서 어떻게 할 수 있습니까?
QUrl::toEncoded()
메서드를 사용할 때 변환 된 URL은 항상 UTF-8 16 진수로 변환됩니다. "www. % C3 % 83 % C2 % 84SDF.de".
QUrl의 일부를 유니 코드로 변환하고 싶습니다.QString 또는 QUrl을 유니 코드로 변환
나는 주어진 URL이 www.ÄSDF.de
이고 www.%C4SDF.de
으로 변환하고 싶습니다. Qt에서 어떻게 할 수 있습니까?
QUrl::toEncoded()
메서드를 사용할 때 변환 된 URL은 항상 UTF-8 16 진수로 변환됩니다. "www. % C3 % 83 % C2 % 84SDF.de".
을 QUrl::toPercentEncoding
으로 생성 할 수 없습니다.이 함수는 항상 % 인코딩 전에 UTF-8 바이트 시퀀스로 인코딩됩니다.
ISO-8859-1과 같은 UTF-8이 아닌 인코딩 (일반적으로 불행한 기존 응용 프로그램과의 호환성을 위해)을 사용해야하는 경우 QString::toLatin1
에서 생성하는 바이트 배열에 QByteArray::toPercentEncoding
을 사용해야합니다.
그러나 그 중 하나를 원하지 않을 수도 있습니다. 심지어 UTF-8-correct www.%C3%84SDF.de
은 URI에 호스트 이름 www.ÄSDF.de
을 지정하는 유효한 방법이 아닙니다. 대신 www.xn--sdf-pla.de
을 사용하여 IDN algorithm (Punycode 사용)을 사용하여 인코딩해야합니다.
쉽고 일반적으로 진행하는 가장 좋은 방법은 QUrl::toEncoded입니다. 작업 URI에
http://www.äsdf.de/äsdf?äsdf=äsdf
: 이것은 IRI, 예를집니다
http://www.xn--sdf-pla.de/%C3%A4sdf?%C3%A4sdf
toEncodedUrl은 QT5에서 사용되지 않습니다. (참고 다시 IRI는 UTF-8이 필요).
I했던이 :와
url.setUrl(QString(QUrl::toPercentEncoding(s, "/:")));
- QUrl :: toPercentEncoding (QString :: fromUtf8 ("www.ÄSDF.de")); - 이제는 올바른 utf-8 코드 인 "www. % C3 % 84SDF.de"를 얻지 만 어떻게 유니 코드 "www. % C4SDF.de"에서이 URL을 변환 할 수 있습니까? – Garrz