村田さん

大田です。
パッチを当ててビルドしてみましたが,結果は残念ながら思わしくありませんでした。
ソースファイルに正しくパッチがあたっていることも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);
==============================================================================