【解決】ClaudeのProject KnowlegeでGitHub連携しても同期できないファイルがある

2025年03月20日
Anthropic社のAIアシスタント「Claude」の「Project Knowledge」機能でGitHubリポジトリを連携しようとしたとき、一部のファイルだけが同期されないという現象が発生しました。
解決できたので、記録として残しておきます。

原因は日本語を含むファイルの文字コードでした。

要約
・ClaudeのProject Knowledge機能でGitHubリポジトリを連携すると、選択した全ファイルが同期されず、一部だけが同期された
・原因は日本語を含むファイルの文字コード
・すべてのファイルをUTF-8(BOMなし)に統一することで解決

スポンサーサイト

遭遇した問題:選んだはずのファイルが同期されない


私はWindows環境で、Unity、Visual Studio、GitHubで開発していて、AIアシスタント「Claude」との会話でコードについて質問するために、Project Knowledge機能でGitHubリポジトリを連携しようとしました。GitHubリポジトリ自体には問題なくコードがプッシュできていましたが、それをClaudeに連携しようとしたときに問題に遭遇しました。

問題の現象:
  • GitHubリポジトリから48個のファイルを選択したのに、「最終同期:●分前•10個のファイル」と表示される
  • 再度同期しても常に10個のファイルしか同期されない
  • 選択するファイル数を減らしても、いくつかのファイルが同期できない

何度試しても解決せず、「ClaudeのProject Knowledge機能に何か制限があるのだろうか?」と頭を抱えていました。ファイルサイズやファイル数は関係なさそうです。そこで、同期できたファイルと同期できなかったファイルの違いを調べてみることにしました。



原因究明:日本語と文字コードの謎


同期に成功した10個のファイルを詳細に調べたところ、共通点が見えてきました。
発見: 同期できたファイルには日本語が一切含まれていなかった!
この発見をもとに、次の2つの仮説を立てて検証しました:
  1. 日本語の有無が影響している: 日本語コメントを含むファイルを編集して日本語を削除し、同期テスト

  2. 文字コードの問題: 日本語を含むファイルのエンコーディングをUTF-8に変更して同期テスト

テストしてみた結果、どちらの方法でも、問題のファイルが正常にClaudeのProject Knowledgeに同期されるようになりました!


原因は文字コード:Windows開発環境とClaudeのGitHub連携の落とし穴


問題の根本原因は、Windowsの開発環境(Visual Studio)でのデフォルトの文字コード設定とClaudeのAPI処理の間のミスマッチにあったようです。

日本語Windowsでは、テキストファイルのデフォルトエンコーディングが「Shift-JIS」になっていることが多いと思いますが、「Shift-JIS」だと、Claudeにファイルをアップロードするときに問題が起きていたようです(※ 2025年3月20日時点)

エンコーディング特徴Claude連携
Shift-JIS日本の伝統的な文字コード。Windowsで長く使用されてきた❌ 同期できない
UTF-8 (no BOM)BOMなしのUTF-8。Webやクロスプラットフォームで標準的✅ 正常に同期できる


ClaudeのProject Knowledge機能が想定している文字コードは不明ですが、とりあえずUTF-8(BOMなし)での処理は大丈夫っぽいです。今回は検証していませんが、BOMありでも大丈夫なんじゃないかと思います。
これはGitHubの問題ではなく、Claude側の制限かなと思います。


解決方法:すべてのファイルをUTF-8に統一する


結局、すべてのファイルをUTF-8にしただけです。

1.Visual Studioの文字コードの設定を変更する


Visual Studioのメニューの「ツール」−「オプション」−「ドキュメント」で、「特定のエンコードでファイルを保存」にチェックして、「Unicode(UTF-8 署名無し)」を選択して「OK」。
ただ、この設定を変更しただけでは、文字コードは変わりません。

2.Visual Studioで各ファイルの文字コードを変更


問題のファイルをVisual Studioで開いて、保存(Ctrl+S)する、というのをすべてのファイルに対して繰り返す。
これで文字コードが変更して保存されました。

この方法ですべてのC#ファイルを変換したあと、GitHubリポジトリにPushして、ClaudeのGitHub連携を同期します。
結果、48ファイル全てがClaudeのProject Knowledgeに正常に同期されるようになりました!


参考リンク



以上

スポンサーサイト

posted at 19:50 | Comment(0) | プログラミング
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: