QTextEditor возвращает кавычки в виде вопросительных знаков в QT Ruby

StackOverflow https://stackoverflow.com/questions/611321

Вопрос

Когда я копирую и вставляю из документа 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 .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top