# CrazyGames のプレビューで日本語が文字化け：ファイルは正しかった。原因は特定できず、ASCII 表記に逃がした

> ゲームポータルのプレビューで「大連鎖！」の「連」だけが壊れた。ファイルのバイト列は正しく、原因は特定できなかった。ASCII 表記に逃がした経緯と、14言語の枠の検査の記録。

- URL: https://koshinstudio.com/notes/ascii-text/
- 公開: 2026-10-08
- 書いた人: Koshin（https://koshinstudio.com/about/）
- サイト: Koshin Studio

  English version (https://koshinstudio.com/en/notes/ascii-text/)

すし積む 開発の記録 ／ 2026年10月

  すし積む (https://koshinstudio.com/works/sushitsumu/)を、ゲームポータルのプレビューで開いたとき、「大連鎖！」の「連」の字だけが、壊れて出る、という報告がありました。ファイルを調べると、文字は、ちゃんと正しく入っていました。原因が分からないまま、「壊れても困らない形」にして、先に進んだ経緯を、コミットの記録で書きます。

## 「連」だけが、壊れる

  報告は、CrazyGames のプレビューからでした。ゲームの中で、連鎖が起きると、画面に「大連鎖！」と出ます。その「連」が、文字として壊れて表示される。ほかの字は、普通に出ています。

  まず、ゲームのファイルそのものを調べました。バイト列は、正しいものでした。つまり、手元のファイルは壊れていません。壊れているのは、配信先に届くまでの受け渡しの途中、あるいは、配信先での読み取りのどこか、ということになります。ただ、コミットには、どこで壊れたのかは、書かれていません。原因は、特定できていません。

## 原因が分からないときの、直し方

  原因の場所が、自分の手の外にあるなら、どこで壊れても、影響が出ない形にしておく、という方針にしました。

- 表示に使う文字を、ASCII だけの表記に置き換える。日本語の文字を、そのままファイルに書かず、スクリプトの文字列は \uXXXX、HTML の本文と属性は &#xXXXX; の形にします。多バイトの文字が途中で壊れても、ASCII だけなら、壊れようがありません。

- 置き換えは、道具（tools/asciify.mjs）に任せる。日本語のまま書き直したあとで、この道具を通せば整います。何度通しても、同じ結果になります。コメントは、読めるように日本語のまま残します（壊れても、画面には出ないからです）。

- 書体の指定の後ろに、漢字を持つ書体を足す。書体に、その字が無くて、字が出ない、という筋道も、塞ぎました。

## 同じ点検で見つかった、ほかの二つ

- 絵文字が、端末によって出ない。地球と携帯電話の絵文字は、端末によっては表示されません。図形（SVG）で描き直しました。

- 連鎖中に浮かぶ文字が、重なって読めない。近い位置に出る文字は、上へ逃がすようにしました。

## 翌日：十四の言語で、枠に収まるか

  このゲームは、14 の言語に対応しています。訳文は、日本語より長くなることが多く、PC の脇の柱（幅 192px）や、札の中で、溢れやすくなります。そこで、言語を順に切り替えて、読み直して、親の枠からはみ出した所と、横に流れた所を数える道具を足しました。

  結果は、14 言語 × 2 画面で、はみ出しなしです。字が壊れる問題と同じで、「溢れていない」ことも、目で見るより、数えるほうが確かです。

## 分かったこと

> 原因が分からないときは、原因の場所に、頼らない形にする。

- ファイルが正しくても、画面が正しいとは限らない。途中の受け渡しや、配信先の読み取りは、自分では直せません。

- 分からないことは、分からないと、記録しておく。今回の「連」が、なぜ壊れたのかは、いまも特定できていません。ASCII 化は、原因を直したのではなく、原因に、影響されない形にしただけです。

- 見た目の崩れは、機械に数えさせる。14 言語を、目で全部確かめるのは、現実的ではありません。

  この記事は、コミット（2026年9月7日、9月8日）の記録から書きました。「連」が壊れた原因は、記録に残っていないため、書いていません。

  この話に出てくるもの

- すし積む（作品ページ） (https://koshinstudio.com/works/sushitsumu/) — 落ち物パズルのゲーム

- CrazyGames に落ちた (https://koshinstudio.com/notes/crazygames/) — 同じポータルの、別の記録

  遊ぶ (https://koshinstudio.com/play/sushitsumu/)作品ページへ (https://koshinstudio.com/works/sushitsumu/)
