Question

Lorsque je copie et colle d'un document Word dans un QT TextEditor , il semble que tout se passe bien. Mais lorsque j'essaie d'accéder au texte en utilisant toPlainText ou toHTML , il renvoie le texte avec toutes les guillemets (doubles et simples) sous forme de points d'interrogation. Y a-t-il un moyen de contourner ceci? J'utilise les liaisons qt4-qtruby.

Était-ce utile?

La solution

En effet, les guillemets utilisés dans Word ne sont pas réellement des guillemets ASCII. Ce sont des caractères unicodes géniaux qui ressemblent à des guillemets.

Pour le format HTML, si vous utilisez le codage UTF-8, cela devrait fonctionner correctement. Pour le texte brut, même si vous n'avez pas beaucoup de chance.

Voici une belle page contenant des informations supplémentaires .

Autres conseils

Je suppose que vous utilisez un QTextEdit. Je pense que le problème est lié au codage. Essayez d'enregistrer le document Word en texte brut et essayez la même chose. S'il est important d'interagir avec Word, je pense qu'il vous faudra comprendre comment changer l'encodage lors du copier-coller.

Modifier
Postez la solution que vous utilisez finalement. Je suis très intéressé.

Je suis aussi nouveau sur QT et ce n’est que mon opinion.

J'espère que cela vous aidera.

Lorsque vous appelez toPlainText () , un QString est renvoyé. QString est unicode interne. Par conséquent, tant que les données se trouvent dans QString , elles sont censées être correctes. Si vous obtenez les données hors de QString à l'aide de toAscii () , c'est là que la mauvaise conversion a lieu.
Si cette théorie est correcte, utilisez toUtf8 () au lieu de toAscii () sur QString .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top