コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】NotSupportedException: Encoding 932 data could not be found. Make sure you have correct international codeset assembly installed and enabled.

はじめに

using System.Text;
using UnityEngine;

public class Example : MonoBehaviour
{
    private void Start()
    {
        var encoding    = Encoding.GetEncoding( "shift_jis" );
        var count       = encoding.GetByteCount( "ピカチュウ" );

        Debug.Log( count );
    }
}

上記のように Encoding で Shift JIS を使用するコードを Android で実行したところ

NotSupportedException: Encoding 932 data could not be found. 
Make sure you have correct international codeset assembly installed and enabled.

このようなエラーが発生した(Mono ビルドでも IL2CPP ビルドでも同様)

解決方法

【Unity のインストール先】\Editor\Data\Mono\lib\mono\unity

上記のフォルダに存在する「I18N.CJK.dll」と「I18N.dll」を

f:id:baba_s:20190318154848p:plain

Unity プロジェクトに追加してビルドしたら
Android において Encoding で Shift JIS を使用できるようになった

参考サイト様

https://helpdesk.unity3d.co.jp/hc/ja/articles/204694010-System-Text-Encoding-%E3%81%A7-Shift-JIS-%E3%82%92%E4%BD%BF%E3%81%84%E3%81%9F%E3%81%84