村田さん
大田です。 パッチを当ててビルドしてみましたが,結果は残念ながら思わしくありませんでした。 ソースファイルに正しくパッチがあたっていることもWinMergeで確認してからビルドして, qtcreatorのbinフォルダを丸ごと入れ替えてテストしています(元のフォルダはbinbakに リネーム)。
テストしたプロジェクトファイルは以下のものです。
======================================================================= #------------------------------------------------- # # Project created by QtCreator 2016-03-27T10:27:33 # #------------------------------------------------- #テスト QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = CorruptionTest TEMPLATE = app
SOURCES += main.cpp\ MainWindow.cpp
HEADERS += MainWindow.h
FORMS += MainWindow.ui =======================================================================
これにQt Creatorのメニューから新しいダイアログクラスを追加したところ,以下のようになってしまいました。 パッチを当てる前後で化け方も変わっていません。
======================================================================= #-------------------------------------------------
#
#ProjectcreatedbyQtCreator2016-03-27T10:27:33
#
#-------------------------------------------------
#ヂ���QT+=coregui
greaterThan(QT_MAJOR_VERSION,4):QT+=widgets
TARGET=CorruptionTest
TEMPLATE=app
SOURCES+=main.cpp\
MainWindow.cpp\
Dialog.cpp
HEADERS+=MainWindow.h\
Dialog.h
FORMS+=MainWindow.ui\
Dialog.ui
=======================================================================
Qt Creatorはいくつかインストールしてあるので,.proがパッチを当てたものとは別の.exeに関連付けされて 居るんじゃないかと思ってチェックしましたが,そうではありませんでした。 自分が何か間違っているかもしれません。
取り急ぎご報告まで。.
On 2016/03/25 8:08, MURATA Yasuhisa wrote:
生理学研究所の村田です。
Qt Creator 3.6.1 のソース中の src/plugins/qmakeprojectmanager/qmakenodes.cpp を下記のように変更してビルドしてみたところ、 文字化けしなくなりました。
ご参考まで。
============================================================================== *** qmakenodes.cpp_orig 2016-03-08 20:30:19.000000000 +0900 --- qmakenodes.cpp 2016-03-24 17:57:49.000000000 +0900
*** 1232,1238 **** QmakeProject::proFileParseError(reader.errorString()); return qMakePair(includeFile, lines); } ! contents = QString::fromLocal8Bit(reader.data()); lines = contents.split(QLatin1Char('\n')); }
--- 1232,1238 ---- QmakeProject::proFileParseError(reader.errorString()); return qMakePair(includeFile, lines); } ! contents = QString::fromUtf8(reader.data()); lines = contents.split(QLatin1Char('\n')); }
*** 1347,1353 **** { Core::DocumentManager::expectFileChange(m_projectFilePath.toString()); FileSaver saver(m_projectFilePath.toString(), QIODevice::Text); ! saver.write(lines.join(QLatin1Char('\n')).toLocal8Bit()); saver.finalize(Core::ICore::mainWindow());
m_project->qmakeProjectManager()->notifyChanged(m_projectFilePath);
--- 1347,1353 ---- { Core::DocumentManager::expectFileChange(m_projectFilePath.toString()); FileSaver saver(m_projectFilePath.toString(), QIODevice::Text); ! saver.write(lines.join(QLatin1Char('\n')).toUtf8()); saver.finalize(Core::ICore::mainWindow());
m_project->qmakeProjectManager()->notifyChanged(m_projectFilePath);
==============================================================================