17
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

UnrealEngine4を日本語VisualStudio2019でコンパイルするとログが文字化けする件

Last updated at Posted at 2020-11-10

#VS2019 16.6以降でなにかが起きた
日本語版VS2019 16.6以降でUE4をビルドすると、コンパイルエラーの文字が盛大に文字化けします。

2020-11-10_16h56_42.png

VS2019 16.6で適用されたVS内のMicrosoft.MakeFile.Targetで chcp 65001 などのコマンドをつかってutf-8化が行われたのが原因です。
このファイルを見るとわかりますが、NMakeUseOemCodePageプロパティによって旧来の動作と新しい動作が切り替わるようになっているのがわかります。

#古い動作を使うようにUBTを修正する
このプロパティはプロジェクトファイルに設定することで動作が変わります。
UE4ではプロジェクトファイルは直接は弄らず、GenerateProjectFiles.bat (中はUBTの呼び出し) によって作成されるので
UBTに変更を加える必要があります。

VCProject.cs
			// Project globals (project GUID, project type, SCC bindings, etc)
			{
				VCProjectFileContent.AppendLine("  <PropertyGroup Label=\"Globals\">");
				VCProjectFileContent.AppendLine("    <ProjectGuid>{0}</ProjectGuid>", ProjectGUID.ToString("B").ToUpperInvariant());
				VCProjectFileContent.AppendLine("    <Keyword>MakeFileProj</Keyword>");
				VCProjectFileContent.AppendLine("    <RootNamespace>{0}</RootNamespace>", ProjectName);
				VCProjectFileGenerator.AppendPlatformToolsetProperty(VCProjectFileContent, ProjectFileFormat);
				VCProjectFileContent.AppendLine("    <MinimumVisualStudioVersion>{0}</MinimumVisualStudioVersion>", VCProjectFileGenerator.GetProjectFileToolVersionString(ProjectFileFormat));
/*----->*/		VCProjectFileContent.AppendLine("    <NMakeUseOemCodePage>true</NMakeUseOemCodePage>");  //これを追加
				VCProjectFileContent.AppendLine("    <TargetRuntime>Native</TargetRuntime>");
				VCProjectFileContent.AppendLine("  </PropertyGroup>");
			}

変更を適用したらGenerateProjectFiles.batでプロジェクトファイルの更新をおこなってください。

2020-11-10_18h13_09.png

正しいエラー文字列が表示されるようになりました。めでたしめでたし。

#追記

ビルドしたときに Microsoft.MakeFile.targets ファイルの中で System32\chcp.com 65001 > NUL がどうたらこうたらというエラーが出る場合もこれで解決します。

コンパイルエラー
1>C:\Program Files (x86)\(略)\v160\Microsoft.MakeFile.Targets(46,5): error MSB3073: The command "C:\WINDOWS\System32\chcp.com 65001 >NUL 

#謝辞&リンク

調査には @steel_code さんのこの記事に大変助けられました!ありがとうございます!
VS2019でUE4のビルド時に日本語出力が文字化けする

Redditでも同じところで問題が出ているケースが報告されています。
https://www.reddit.com/r/unrealengine/comments/gphjjj/unable_to_compile_c_project_425/

17
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?