最近在开发中要用到GB2312字符编码(CP936),在C#代码中便有了如此代码

 System.Text.Encoding.GetEncoding()

这在Unity3d 编辑器下运行没有任何问题,打包出exe文件执行时,便会出现程序无响应的情况,查看日志文件可以看到如下错误:

  NotSupportedException: CodePage 936 not supported

谷歌后...便将I18N.DLLI18N.CJK.DLL 从Unity安装目录(Editor\Data\Mono\lib\mono\unity 和 Editor\Data\Mono\lib\mono\2.0 两个目录下都存在,PC上测试均可使用)拷贝到项目目录的Assets目录下,然后重新编译出包,正常运行。

在出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 官方手册(http://docs.unity3d.com/Manual/iphone-playerSizeOptimization.html)中提到,可以通过添加白名单的方式,在使用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也可以正常使用了~

Unity3d发布的iOS产品中使用GB2312字符编码(CP936)的更多相关文章

  1. Java中常用的字符编码-解析

    ASCII字符编码 美国信息互换标准代码,为罗马字母编制的一套编码,主要用于表达现代英语和其他西欧语言中的字符,1字节的7位表示一个字符. ISO-8859-1字符编码 ISO为西欧语言中的字符制定的 ...

  2. Python 2中万恶的字符编码

    Python2中如果文件存在中文,必须要指定#-*- coding:utf8 -*-或#coding:utf8,否则会报错.那这是为什么呢? 一.原理解析 我们知道,在计算机发展初期,计算机只能识别字 ...

  3. Java web应用中的常见字符编码问题的解决方法

    以下是 Java Web应用的常见编码问题 1. html页面的编码 在web应用中,通常浏览器会根据http header: Content-type的值来决定用什么encoding, 比如遇到Co ...

  4. [转载]Java web应用中的常见字符编码问题的解决方法

    以下是 Java web应用的常见编码问题 1. html页面的编码 在web应用中,通常浏览器会根据http header: Content-type的值来决定用什么encoding, 比如遇到Co ...

  5. Python中文文件处理中涉及的字符编码及字符集

    在现在的互联网,字符编码是互联网信息交互的一个重要基础,各种语言都有支持信息编码的机制,Python也不例外.Python除了字符编码之外,对于字节码和字符串两种类型有严格区分,字符串是本地可以读取的 ...

  6. Python2/3的中、英文字符编码与解码输出: UnicodeDecodeError: 'ascii' codec can't decode/encode

    摘要:Python中文虐我千百遍,我待Python如初恋.本文主要介绍在Python2/3交互模式下,通过对中文.英文的处理输出,理解Python的字符编码与解码问题(以点破面). 前言:字符串的编码 ...

  7. 关于web.xml中配置Spring字符编码过滤器以解决中文乱码的问题

    当出现中文乱码问题,Spring中可以利用CharacterEncodingFilter过滤器解决,如下代码所示: <!-- Spring字符编码过滤器:解决中文乱码问题 --> < ...

  8. mysql中设置默认字符编码为utf-8

    使用过Linux的同志就知道,在Linux下安装mysql,尤其是使用yum安装的时候,我们是没法选择其默认的字符编码方式.这个就是一个比较头痛的问题,如果Linux数据库中使用到中文的时候,乱码问题 ...

  9. PHP中SimpleXMLElement对象字符编码

    最近在使用SimpleXMLElement来生成和解析XML. 由于我们使用PHP开发的这边使用UTF-8编码,而对方使用GBK编码,因此就遇到了中文字符编码问题. 后来发现,XML内部的编码与其头 ...

随机推荐

  1. solr精确查询,查询关键字分词后,指定满足匹配所有

    一.solr查询,查询配置了查询分词器的字段,默认会对查询关键字做分词处理 1.如查询关键字F1501ZY000011,使用solr7自带的中文分词器,默认会分词为:f,1501,zy,000011 ...

  2. WordVBA常用项

    将光标所在段落选中 Selection.MoveUp unit:=wdParagraphSelection.MoveDown unit:=wdParagraph, Extend:=wdExtend ' ...

  3. Rhythmk 一步一步学 JAVA (21) JAVA 多线程

    1.JAVA多线程简单示例 1.1 .Thread  集成接口 Runnable 1.2 .线程状态,可以通过  Thread.getState()获取线程状态: New (新创建) Runnable ...

  4. 为何在JDK安装路径下存在两个JRE?

    "两个jre"和"三个lib"的功能简单扼要的解释 安装JDK后,Java目录下有jdk和jre两个文件夹,但jdk下还有一个jre文件夹,而且这个jre比前面 ...

  5. modern.IE

    1.主要测试IE浏览器的兼容性问题 2.网站上提供各种虚拟机来表现兼容性问题,可以像平常一样使用浏览器测试,但是中国访问速度比较慢 3.网址:http://loc.modern.ie/zh-cn/vi ...

  6. Solr Dismax查询解析器-深入分析

    Solr 支持多种查询解析,给搜索引擎开发人员提供灵活的查询解析.Solr 中主要包含这几个查询解析器:标准查询解析器.DisMax 查询解析器,扩展 DisMax 查询解析器(eDisMax) Di ...

  7. liunx 命令大全

    一.切换到用户 1.切换到根用户(root) su 2.切换到a用户 su a 二.建立用户,以及mysql的目录1.groupadd mysql #建立一个mysql的组2.useradd -r - ...

  8. Shrio03 Authenticator、配置多个Realm、SecurityManager认证策略

    1 Authenticator 简介 1.1 层次结构图 1.2 作用 职责是验证用户帐号,是ShiroAPI中身份验证核心的入口点:接口中声明的authenticate方法就是用来实现认证逻辑的. ...

  9. java代码实现网络远程开机

    http://my.oschina.net/kingfire/blog/156764 概述 远程开机(Wake onLAN)是指通过网络实现对服务器或者pc启动运行,现在很多网卡都支持的这个功能. 其 ...

  10. 如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。

    在配置文件中添加 <identity   impersonate= "true "   userName= "Administrator "   pass ...