怀着无比激动的心情下载了Unity3D,按照网上的教程试着制作我的第一个U3D“作品”:camera绑定绘制GUI显示“Hello, World”,很简单的例子,因此很快就弄完顺利运行,可是我想试试中文字符的,原以为不会出问题,可是真的出问题了:在u3d运行时显示乱码。自己顺藤摸瓜,通过修改u3d的c#代码模板顺利解决问题:
① 定位到:UnityEditorDataResourcesScriptTemplates
② 用EditPlus打开:81-C# Script-NewBehaviourScript.cs.txt
③ 另存为UTF-8编码(默认为UTF-8 + BOM)
运行如下:
科普:
其实这个问题当时在Python2.7读取含有中文字符的txt时也遇到过,没记错的话,那时候我在WIN7 64位下用系统自带的记事本保存成UTF-8,实际都是带BOM的。
那么什么是BOM呢?BOM(byte order mark)是为UTF-16和UTF-32准备的,用于标记字节序(byte order)。微软在 UTF-8 中使用 BOM 是因为这样可以把UTF-8和ASCII等编码明确区分开。但是,不含 BOM的UTF-8才是标准形式!!