内容纲要
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>