UnityのTextが文字化けする
MacでビルドしたiOSアプリのみ、Textの一部が文字化けして表示された。
スクリプトから文字を読み込んでいるText
Windowsビルドでは大丈夫だった
理由
Unityはスクリプト内で日本語を使う場合は文字コードをUTF-8
でないといけないけど、特定の外部Editorで作ったファイルが文字コードが変わることがあるらしい。
結果的にはそのファイル開いて、自分の普通の?環境で日本語を書き直したら差分にちゃんと出て治った。
ーー
以下は見るファイル間違えてたせいで、なんで治らないんだろ〜ってずっと試行錯誤した時の文字コード変換などのメモ
文字コード変換
Windows
変更はメモ帳でできる
Mac
Macもテキストエディタの設定で保存するときの文字コードを選択できる
現状確認は
file --mime hoge.html
でできた。
UTF-8 Unicode textって結果が出た。
??
こちらの方は同じUTF-8でもBOMの有り無しで変わったらしい
MacでUnity開発してるとGUIで日本語が「????」に文字化けしました。
原因は、C#ファイルが「UTF-8 BOM無し」になってるためでしたので、
「UTF-8 BOM有り」に変換すると解消されます。
macだとmiというソフトで変更できる
最後に
普通に見るファイル間違ってただけだったてへぺろ
いつもの環境で文字を書きなおしたら文字化け治った。
SourceTreeでちゃんと差分も見れたし
まあファイル間違ってたのと文字化けしたの全く関係ないわけじゃない。
似たような中身のスクリプトを生成するときに、UnityEditorからじゃなくて外部Editorでファイルコピペして作成した人がいて、そのせいで文字コード変わったんじゃないかな?
UnityEditorからスクリプト作成したら文字コードはUTF-8らしいし