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 にして解決した。
修正手順
最終的な安全手順は:
- 修正版 README をダウンロード
- PowerShellで UTF-8 指定保存
- git add / commit / push
- 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は単なる保管庫ではなく、
思考と設計を可視化する場所だと実感した。


コメント