mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
82c827fc56
QString is UTF-16, thus QString::size returns the number of UTF-16 code
units. Thus, we would fail to perform, for example:
ak_string_from_qstring(QString("😀"));
Which is 2 UTF-16 code units, but 4 UTF-8 code units.
23 lines
645 B
C++
23 lines
645 B
C++
/*
|
|
* Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include "StringUtils.h"
|
|
|
|
AK::DeprecatedString ak_deprecated_string_from_qstring(QString const& qstring)
|
|
{
|
|
return AK::DeprecatedString(qstring.toUtf8().data());
|
|
}
|
|
|
|
ErrorOr<String> ak_string_from_qstring(QString const& qstring)
|
|
{
|
|
auto utf8_data = qstring.toUtf8();
|
|
return String::from_utf8(StringView(utf8_data.data(), utf8_data.size()));
|
|
}
|
|
|
|
QString qstring_from_ak_string(StringView ak_string)
|
|
{
|
|
return QString::fromUtf8(ak_string.characters_without_null_termination(), static_cast<qsizetype>(ak_string.length()));
|
|
}
|