Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
src_corelib_text_qstringconverter.cpp
Go to the documentation of this file.
1// Copyright (C) 2020 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
4#include <QStringConverter>
5#include <QByteArray>
6
9
11{
12 {
13 //! [0]
14 QByteArray encodedString = "...";
15 auto toUtf16 = QStringDecoder(QStringDecoder::Utf8);
16 QString string = toUtf16(encodedString);
17 //! [0]
18 }
19
20 {
21 //! [1]
22 QString string = "...";
23 auto fromUtf16 = QStringEncoder(QStringEncoder::Utf8);
24 QByteArray encodedString = fromUtf16(string);
25 //! [1]
26 }
27
28 {
29 //! [2]
30 auto toUtf16 = QStringDecoder(QStringDecoder::Utf8);
31
32 QString string;
33 while (new_data_available() && !toUtf16.hasError()) {
34 QByteArray chunk = get_new_data();
35 string += toUtf16(chunk);
36 }
37 auto result = toUtf16.finalize();
38 if (result.error != QStringDecoder::FinalizeResult::NoError) {
39 // Handle error
40 }
41 //! [2]
42 }
43
44 {
45 //! [3]
46 auto fromUtf16 = QStringEncoder(QStringEncoder::Utf8);
47
48 QByteArray encoded;
49 while (new_data_available() && !fromUtf16.hasError()) {
50 QString chunk = get_new_data();
51 encoded += fromUtf16(chunk);
52 }
53 auto result = fromUtf16.finalize();
54 if (result.error != QStringEncoder::FinalizeResult::NoError) {
55 // Handle error
56 }
57 //! [3]
58 }
59
60 using namespace Qt::StringLiterals;
61
62 {
63 //! [4]
64 QByteArray encodedString = "...";
65 auto toUtf16 = QStringDecoder(QStringDecoder::Utf8);
66 auto data = toUtf16(encodedString); // data's type is QStringDecoder::EncodedData<const QByteArray &>
67 QString string = toUtf16(encodedString); // Implicit conversion to QString
68
69 // Here you have to cast "data" to QString
70 auto func = [&]() { return !toUtf16.hasError() ? QString(data) : u"foo"_s; };
71 //! [4]
72 }
73
74 {
75 //! [5]
76 QString string = "...";
77 auto fromUtf16 = QStringEncoder(QStringEncoder::Utf8);
78 auto data = fromUtf16(string); // data's type is QStringEncoder::DecodedData<const QString &>
79 QByteArray encodedString = fromUtf16(string); // Implicit conversion to QByteArray
80
81 // Here you have to cast "data" to QByteArray
82 auto func = [&]() { return !fromUtf16.hasError() ? QByteArray(data) : "foo"_ba; };
83 //! [5]
84 }
85}
bool examples()
[3]
bool new_data_available()
QByteArray get_new_data()