トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

UnityのTextが文字化けする/文字コード確認と変換

UnityのTextが文字化けする

MacでビルドしたiOSアプリのみ、Textの一部が文字化けして表示された。

f:id:bibinbaleo:20210913153335p:plain

スクリプトから文字を読み込んでいるText

Windowsビルドでは大丈夫だった

sat-box.hatenablog.jp

理由

Unityはスクリプト内で日本語を使う場合は文字コードをUTF-8

スクリプトファイルを常にUTF-8(BOM付き)に保つ方法 - 強火で進め

でないといけないけど、特定の外部Editorで作ったファイルが文字コードが変わることがあるらしい。

blog.nishimu.land

 

結果的にはそのファイル開いて、自分の普通の?環境で日本語を書き直したら差分にちゃんと出て治った。

ーー

以下は見るファイル間違えてたせいで、なんで治らないんだろ〜ってずっと試行錯誤した時の文字コード変換などのメモ

文字コード変換

Windows

変更はメモ帳でできる

uxmilk.jp

f:id:bibinbaleo:20210910122731p:plain

Mac

Macもテキストエディタの設定で保存するときの文字コードを選択できる

現状確認は

file --mime hoge.html

でできた。

UTF-8 Unicode textって結果が出た。

kawatama.net

??

 

こちらの方は同じUTF-8でもBOMの有り無しで変わったらしい

MacでUnity開発してるとGUIで日本語が「????」に文字化けしました。
原因は、C#ファイルが「UTF-8 BOM無し」になってるためでしたので、
「UTF-8 BOM有り」に変換すると解消されます。

qiita.com

macだとmiというソフトで変更できる

shiritai.net

 

最後に

普通に見るファイル間違ってただけだったてへぺろ

いつもの環境で文字を書きなおしたら文字化け治った。

SourceTreeでちゃんと差分も見れたし

まあファイル間違ってたのと文字化けしたの全く関係ないわけじゃない。

似たような中身のスクリプトを生成するときに、UnityEditorからじゃなくて外部Editorでファイルコピペして作成した人がいて、そのせいで文字コード変わったんじゃないかな?

UnityEditorからスクリプト作成したら文字コードはUTF-8らしいし