QTextEditor возвращает кавычки в виде вопросительных знаков в QT Ruby
-
03-07-2019 - |
Вопрос
Когда я копирую и вставляю из документа Word в QT TextEditor
, Кажется, все выглядит нормально.Но когда я пытаюсь получить доступ к тексту, используя toPlainText
или toHTML
, он возвращает текст со всеми кавычками (двойными и одинарными) в виде вопросительных знаков.Есть ли способ обойти это?Я использую привязки qt4-qtruby.
Решение
Это потому, что кавычки, используемые в Word, на самом деле не являются символами кавычек ASCII - это какой-то забавный юникод-символ, который выглядит как кавычка.
Для HTML, если вы используете кодировку UTF-8, она должна работать нормально. Хотя для простого текста вам не повезло.
Другие советы
Я предполагаю, что вы используете QTextEdit.Я думаю, что проблема связана с кодировкой.Попробуйте сохранить документ Word в виде обычного текста и проделайте то же самое.Если важно взаимодействовать с word, я думаю, вам придется выяснить, как изменить кодировку при копировании-вставке.
Редактировать
Наконец, опубликуйте любое решение, которое вы используете.Мне это очень интересно.
Я тоже новичок в QT, и это всего лишь мое мнение.
Я надеюсь, что это поможет.
Когда вы вызываете toPlainText ()
, он возвращает QString
. QString
является внутренним юникодом, поэтому, пока данные находятся внутри QString
, все должно быть в порядке. Если вы получаете данные из QString
с помощью toAscii ()
, то в этом случае происходит плохое преобразование.
Если эта теория верна, используйте toUtf8 ()
вместо toAscii ()
в QString
.