Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

PowerShell上でgit diff中の日本語が文字化けするのを直す

前提条件

PowerShellから下のようにgit diffを実行する。

PS C:\git\checkstyle> Get-ChildItem -Recurse | Where-Object { $_.Name -like "messages_ja.properties" } | ForEach-Object { $_.FullName.substring(29) } | ForEach-Object { Write-Output "`n`n$_"; git diff checkstyle-4.4 master -- $_ }

問題

日本語が<E3>とか<82>とか<83>とかを含む表示に化けてしまう。

src\main\resources\com\puppycrawl\tools\checkstyle\messages_ja.properties
diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/messages_ja.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/messages_ja.properties
index 0b9999401..10b36a18c 100644
--- a/src/main/resources/com/puppycrawl/tools/checkstyle/messages_ja.properties
+++ b/src/main/resources/com/puppycrawl/tools/checkstyle/messages_ja.properties
@@ -14,5 +14,5 @@ PackageObjectFactory.ambiguousModuleNameExceptionMessage=<E8><A8><AD><E5><AE><9A><E3><81><AB><E3><81>
<AF> ''{0}''<E3><81><8C>
 PackageObjectFactory.unableToInstantiateExceptionMessage=''{0}'' <E3><82><AF><E3><83><A9><E3><82><B9><E3><82><92><E3>

対策

以下を実行する。

Set-Item env:LANG -Value ja_JP.UTF-8

以下のように、表示が文字化けしなくなる。

src\main\resources\com\puppycrawl\tools\checkstyle\messages_ja.properties
diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/messages_ja.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/messages_ja.properties
index 0b9999401..10b36a18c 100644
--- a/src/main/resources/com/puppycrawl/tools/checkstyle/messages_ja.properties
+++ b/src/main/resources/com/puppycrawl/tools/checkstyle/messages_ja.properties
@@ -14,5 +14,5 @@ PackageObjectFactory.ambiguousModuleNameExceptionMessage=設定には ''{0}''が
 PackageObjectFactory.unableToInstantiateExceptionMessage=''{0}'' クラスをインスタンス化\