村田さん
大田です。
パッチを当ててビルドしてみましたが,結果は残念ながら思わしくありませんでした。
ソースファイルに正しくパッチがあたっていることも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のメニューから新しいダイアログクラスを追加したところ,以下のようになってしまいました。
パッチを当てる前後で化け方も変わっていません。
=======================================================================
#-------------------------------------------------
#
# 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 \
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);
==============================================================================