QStringとUtf-8

MFCからQtへの移植で注意しなければならないのは、

CStringをQStringへダイレクトに置換してはいけないこと。

実は、ローケールを設定しても、

QStringはもともとある日本語をUTF16に変換した際、

クセがある。

1 パス指定である「\」これを、

「/」には変えず、日本語に存在しない似た「¥」に変換してしまう。

2 utf-8のファイルはQByteArrayへ読み込むこと、

これもQStringへ読み込む際、意図しない日本語コードへ、

変換されてしまう。 その後、toLocal8Bit()で戻しても、

ムダである。

FormatやTRACE()などでも、そのままでは動作しない。

前者はsprintfではなくargへ。 後者はいちいちtoLocal8Bit().constData()などを、

つけなければならない。



コメント

このブログの人気の投稿

日本でコンピュータサイエンスを学ぶ難しさ

How to preview nif file on the ubuntu.