mirror of
https://github.com/ModOrganizer2/modorganizer-plugin_python.git
synced 2026-07-27 14:03:33 -07:00
Fix string conversion issues with emoji characters (#120)
* Fix load/cast of QString to avoid issues with surrogate pairs (emoji characters, ...). --------- Co-authored-by: Mikaël Capelle <capelle.mikael@gmail.com>
This commit is contained in:
co-authored by
Mikaël Capelle
parent
7a885ad014
commit
cc1bc4cb7f
@@ -11,6 +11,14 @@ PYBIND11_MODULE(qt, m)
|
||||
{
|
||||
// QString
|
||||
|
||||
m.def("create_qstring_with_emoji", []() {
|
||||
return QString::fromUtf16(u"\U0001F600");
|
||||
});
|
||||
|
||||
m.def("consume_qstring_with_emoji", [](QString const& qstring) {
|
||||
return qstring.length();
|
||||
});
|
||||
|
||||
m.def("qstring_to_stdstring", [](QString const& qstring) {
|
||||
return qstring.toStdString();
|
||||
});
|
||||
|
||||
@@ -10,10 +10,19 @@ def test_qstring():
|
||||
|
||||
assert m.qstring_to_stdstring("éàüö") == "éàüö"
|
||||
assert m.stdstring_to_qstring("éàüö") == "éàüö"
|
||||
assert m.qstring_to_stdstring("خالد") == "خالد"
|
||||
assert m.qstring_to_stdstring("🌎") == "🌎"
|
||||
|
||||
assert m.qstring_to_int("2") == 2
|
||||
assert m.int_to_qstring(2) == "2"
|
||||
|
||||
emoji = m.create_qstring_with_emoji()
|
||||
|
||||
assert emoji.encode("utf-16be", "surrogatepass") == b"\xd8\x3d\xde\x00"
|
||||
assert m.consume_qstring_with_emoji(emoji) == 2
|
||||
|
||||
assert m.consume_qstring_with_emoji("🌎") == 2
|
||||
|
||||
|
||||
def test_qstringlist():
|
||||
assert m.qstringlist_join([""], "--") == ""
|
||||
|
||||
Reference in New Issue
Block a user