游戏技术文章

Unity GB2132的多平台下的编码问题

时间:2019-4-8 3:26:25  作者:棋牌资源网  来源:棋牌资源网 www.pahuai.com  查看:5169  评论:0
内容摘要:最近服务器都是发GB2132的格式,在本地转码,Editor模式下正常。其它平台就解析错误。 查了半天发现了一篇文章,不过不知道原文出处,记录一下。  最近在开发中要用到GB2312字符编码(CP936),在C#代码中便有了如此代码 Not...
最近服务器都是发GB2132的格式,在本地转码,Editor模式下正常。其它平台就解析错误。 

查了半天发现了一篇文章,不过不知道原文出处,记录一下。 
 


最近在开发中要用到GB2312字符编码(CP936),在C#代码中便有了如此代码 
NotSupportedException: CodePage 936 not supported 
谷歌后便将I18N.DLL和I18N.CJK.DLL从Unity安装目录 
(Editor\Data\Mono\lib\mono\unity和Editor\Data\Mono\lib\mono\2.0) 
两个目录下都存在,拷贝到项目目录Asserts目录下,重新编译出包,正常运行。 
在出iOS包时,又再次出现 
NotSupportedException: CodePage 936 not supported 
前面虽然已经把相关库文件放到项目之中,但仔细查看xcode工程目录,其下并没有 
I18N.DLL 和 I18N.CJK.DLL 文件的任何影子。此时便想到我们的unity项目中使用的 
stripping level可能会有影响,索性暂时disable stripping,尝试重新出iOS包,发现 
一切正常,再看xcode工程目录下果然也有了I18N.DLL 和 I18N.CJK.DLL。 
那么,问题又来了,如果仍想继续使用stripping,有没有办法? 
unity 官方手册中提到,可以通过添加白名单的方式,在使用stripping时,忽略掉指定 
的库。方式是在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>

使用CP936,只需要添加上述内容。 
如此,将该link.xml文件添加到Assets根目录下后,开启stripping后,CP936也可以正常使用了~

标签:UnityGB2132的多平台下的编码问题 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2024 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved