内容纲要

File.ReadAllText设置gbk编码后就可以读取中文文件
var text = File.ReadAllText(path, Encoding.GetEncoding("GB2312"));

这行代码在编辑器中运行时正常的,但打包出来就会报错"NotSupportedException: Encoding 936 data could not be found. Make sure you have correct international codeset assembly installed and enabled."

原因是Unity在发布时并没有包含这些字符集,需要手动加进去,方法是:
找到Unity安装目录
Editor\Data\Mono\lib\mono\2.0
将里面的I18N.dll和I18N.CJK.dll复制到工程中

防止被忽略可以在Assets根目录下添加link.xml文件,其内容格式如下

<?xml version="1.0" encoding="utf-8"?>
<linker>
    <assembly fullname="I18N">
        <type fullname="I18N.Common.Manager" preserve="all"/>
    </assembly>
    <assembly fullname="I18N.CJK">
        <type fullname="I18N.CJK.CP936" preserve="all"/>
    </assembly>
</linker>