[Qt-users:518] Re: 全角文字環境固有のQt Creatorのバグ

MURATA Yasuhisa murata @ nips.ac.jp
2016年 3月 25日 (金) 08:08:29 JST


生理学研究所の村田です。

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);
==============================================================================

-- 
村田 安永




Qt-users メーリングリストの案内