[Solved] Menu & Window Caption - special chars aren't displaying correctly
-
My advice on this would be to not use those characters in your code at all. In your basic application, you could use English (which has no special characters). Then, you use Qt Linguist to translate your application to the language you require. Of course, you do need to
make all user-visible strings translatable (good idea anyway)
install the translator in your QApplication (see the "documentation":http://doc.qt.nokia.com/4.7/linguist-programmers.html here)
build the .qm files from the .ts files
distribute the .qm files with your application, or build them into the application as a resource
-
Then it should be an encoding problem.
I'd suggest you convert the source files into UTF-8. Qt Creator can do this, if you use it.
Then add to your .pro file:
@
CODECFORTR = UTF-8
CODECFORSRC = UTF-8
@And add to your main method:
@
#include <QTextCodec>int main( int argc, char ** argv )
{
QApplication app(argc, argv);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));// your code goes here}
@You could change UTF-8 to your ISO-8859-xxx version but then you might have problems with other characters, better make it UTF-8 if you set the codecs anyways.
-
Saw a similar problem with the degree symbol ('\260' as a char). I recall the solution was related to which fonts were being used (Linux Font Server silently substituted some of them). Also hard-coding the needed symbol (hence the \260) was part of the solution.
-
[quote author="Peppy" date="1304452100"]
@Andre: That's not neccesary, it's just few strings (about 20)...[/quote]
That was not the point. The point is that it would probably save you from all the encoding issues (including those that may arise if some other dev opens up the file later on in some random editor, and doesn't realize that that is important). -
I am back...so I have this KISS code:
@
#include <QtGui/QApplication>
#include <QtGui/QWidget>
#include <QtGui/QLabel>int main(int argc, char *argv[])
{
QApplication a(argc, argv);QWidget* window = new QWidget(); window->setWindowTitle(QString("ľščťžýáíéäúňô")); window->resize(400,300); window->show(); QLabel* label = new QLabel(window); label->move(100,100); label->setText(QString("ľščťžýáíéäúňô")); label->show(); return a.exec();}
@
Nothing more. And this is result: !http://i56.tinypic.com/p93qq.png(http://i56.tinypic.com/p93qq.png);!I don't know what's need to change...System font is Tahoma which includes special chars, probably this is an issue on application side...
-
I've tried, and this is result:
!http://i55.tinypic.com/2lx83s.png(http://i55.tinypic.com/2lx83s.png)!
-
[quote author="Peppy" date="1304530509"]I've tried, and this is result:[/quote]
You must actually change the encoding of your file. If you use Qt Creator go to the project pane, then to editor settings and change the default encoding to UTF-8.
For all your files that you have already: open them in Creator, go to menu Edit / Select Encoding... choose UTF-8 and click "save with encoding". This transforms all of your files to UTF-8 encoding.
If you know how to handle the tool, you can use something like recode too, of course. Just make sure Creator reloads the files, if they're open. Otherwise it overwrites the converted files. Better close all files before you do the conversion, quit Creator and open it afterwards.