GitHub公開と文字コード事故との戦い — SCOUT × MulmoChat開発ログ

SCOUT用の MulmoChat 型インターフェースを GitHub に公開した。

今回のプロジェクトは以下で公開しています。

👉 https://github.com/shuushoku5/scout-mulmochat

今回の目的は、 「LLMのfunction callをロボット運用UIに組み込む設計」を 実装レベルで公開することだった。 しかし、想定外のトラブルが発生した。

文字化け問題

GitHubにpushしたREADMEが文字化けした。 ローカルでは正常に見えるのに、 GitHub上では
蟇セ隧ア蝙九Ο繝懊ャ繝磯°
のような謎の文字列になってしまう。 最初はキャッシュを疑った。 しかし原因は違った。

原因:Windows × PowerShell × 文字コード

今回やった流れは:
tar xzf scout_mulmochat.tar.gz
↓
PowerShellで置換処理
↓
Set-Contentで保存
↓
git push
問題はここだった。
(Get-Content README.md) -replace ... | Set-Content README.md
PowerShellはデフォルトで UTF-16やShift-JISで保存することがある。 GitHubはUTF-8前提。 結果、文字化け。

学んだこと

① tar xzf は悪くない

Git Bash で展開した tar.gz 自体は問題なかった。

② 問題は「保存時のエンコーディング」

PowerShellで保存するなら必ず:
Set-Content -Encoding utf8
を指定する必要がある。

③ UTF-8(BOM) がWindowsでは安定

最終的には:
[System.IO.File]::WriteAllText(..., New-Object System.Text.UTF8Encoding($true))
で BOM付きUTF-8 にして解決した。

修正手順

最終的な安全手順は:
  1. 修正版 README をダウンロード
  2. PowerShellで UTF-8 指定保存
  3. git add / commit / push
  4. GitHubで Ctrl + F5 強制リロード

Windows開発での予防策

今後の運用ルール:
  • zipより git clone を使う
  • tar展開は Git Bash か 7-Zip
  • PowerShell保存は必ず -Encoding utf8
  • VS Codeでフォルダごと開く
  • 文字コードを常にUTF-8に固定

今回の本質

これは単なる文字化けの話ではない。 研究開発では、 「再現性」 が極めて重要。 GitHub公開は 単にコードを置くことではなく、
他人が同じ環境で再現できる状態にすること
を意味する。 文字コード一つでそれは壊れる。

次の展開

今回のSCOUT × MulmoChatは、
  • 状態パネル型GUI
  • LLM tool_use
  • ROS service連携
  • 説明可能なロボット操作
という構造になっている。 今後は:
  • 状態遷移の明文化
  • 自己回復シナリオの体系化
  • VPRとの統合
へ進めていきたい。

まとめ

今回の教訓:
Windowsで研究開発をするなら 文字コードを舐めてはいけない。
しかし、 このトラブルを含めて、 公開プロジェクトとして一段階進んだ。 GitHubは単なる保管庫ではなく、 思考と設計を可視化する場所だと実感した。