Unity3D脚本中文字符乱码的解决方案
2016-03-09 10:15
661 查看
用Unity这么久,一直就听别人说遇到在脚本里面用中文字符会乱码的问题。这些问题在Visual Studio比较少,通常都是在MonoDevelop上会出现,甚至在Monodevelop编辑器,写了中文注释,会出现程序报错等问题。
其实这些问题都是由于脚本的编码有问题,修改一下脚本编码为UTF8,这些问题都可以解决。
首先,你可以修改Unity提供的脚本模板,让你以后生成的脚本都不出现编码问题:
找到Unity3D的安装目录:
![](http://files.jb51.net/file_images/article/201311/2013111411380944_jb51.jpg)
注意看路径,找到这个脚本模板的文件夹,上面两个就是javaScript和c#的脚本模板,我们可以修改他们,鼠标右键,使用记事本打开它们。
![](http://files.jb51.net/file_images/article/201311/2013111411380945_jb51.jpg)
选择另存为,然后把编码改成UTF8,保存,可以了。以后你生成的脚本就全部都是UTF8的了。
![](http://files.jb51.net/file_images/article/201311/2013111411380946_jb51.jpg)
既然都改了脚本模板了,我们可以做更多的修改,让我们的脚本生成的时候符合自己的要求,比如我的是这样的,加上了必要的类注释。
![](http://files.jb51.net/file_images/article/201311/2013111411380947_jb51.jpg)
对于之前就已经写好的脚本,你也可以这样用记事本打开,然后另存为UTF8,同样可以解决编码的问题。不过如果你之前已经写了很多脚本,现在要一个个改,估计会把你改傻。
我自己写了一个工具,可以把脚本改成自己想要的编码:
![](http://files.jb51.net/file_images/article/201311/2013111411380948_jb51.jpg)
选择脚本的目录,将会把目录下的所有js或者c#脚本全部打开
![](http://files.jb51.net/file_images/article/201311/2013111411380949_jb51.jpg)
然后我可以选择想要的编码类型
![](http://files.jb51.net/file_images/article/201311/2013111411380950_jb51.jpg)
最后点击一下转换的按钮,ok!全部都转换成功了。
![](http://files.jb51.net/file_images/article/201311/2013111411380951_jb51.jpg)
这时候就觉得程序员还是挺不错的,是吧?
其实这些问题都是由于脚本的编码有问题,修改一下脚本编码为UTF8,这些问题都可以解决。
首先,你可以修改Unity提供的脚本模板,让你以后生成的脚本都不出现编码问题:
找到Unity3D的安装目录:
![](http://files.jb51.net/file_images/article/201311/2013111411380944_jb51.jpg)
注意看路径,找到这个脚本模板的文件夹,上面两个就是javaScript和c#的脚本模板,我们可以修改他们,鼠标右键,使用记事本打开它们。
![](http://files.jb51.net/file_images/article/201311/2013111411380945_jb51.jpg)
选择另存为,然后把编码改成UTF8,保存,可以了。以后你生成的脚本就全部都是UTF8的了。
![](http://files.jb51.net/file_images/article/201311/2013111411380946_jb51.jpg)
既然都改了脚本模板了,我们可以做更多的修改,让我们的脚本生成的时候符合自己的要求,比如我的是这样的,加上了必要的类注释。
![](http://files.jb51.net/file_images/article/201311/2013111411380947_jb51.jpg)
对于之前就已经写好的脚本,你也可以这样用记事本打开,然后另存为UTF8,同样可以解决编码的问题。不过如果你之前已经写了很多脚本,现在要一个个改,估计会把你改傻。
我自己写了一个工具,可以把脚本改成自己想要的编码:
![](http://files.jb51.net/file_images/article/201311/2013111411380948_jb51.jpg)
选择脚本的目录,将会把目录下的所有js或者c#脚本全部打开
![](http://files.jb51.net/file_images/article/201311/2013111411380949_jb51.jpg)
然后我可以选择想要的编码类型
![](http://files.jb51.net/file_images/article/201311/2013111411380950_jb51.jpg)
最后点击一下转换的按钮,ok!全部都转换成功了。
![](http://files.jb51.net/file_images/article/201311/2013111411380951_jb51.jpg)
这时候就觉得程序员还是挺不错的,是吧?
using System; using System.IO; using System.Text; public class FileOp { public void Read() { try{ string pathSource = "test.txt"; using (FileStream fsSource = new FileStream(pathSource, FileMode.Open, FileAccess.Read)) { // Read the source file into a byte array. byte[] bytes = new byte[fsSource.Length]; int numBytesToRead = (int)fsSource.Length; int numBytesRead = 0; while (numBytesToRead > 0) { int n = fsSource.Read(bytes, numBytesRead, numBytesToRead); if (n == 0) break; numBytesRead += n; numBytesToRead -= n; } numBytesToRead = bytes.Length; //text = Encoding.Default.GetString(bytes); text = UTF8Encoding.UTF8.GetString(bytes); } } catch { //ioEx.Message } } public void Write() { string xml = "C#读写中文"; try{ string pathSource = "test.txt"; using (FileStream fsSource = new FileStream(pathSource, FileMode.Create,FileAccess.Write)) { //byte[] data = Encoding.Default.GetBytes(xml); byte[] data = UTF8Encoding.UTF8.GetBytes(xml); fsSource.Write(data, 0, data.Length); } } catch { // error } return; } }
相关文章推荐
- unity 3D 5.3.3官方最新版 完整包下载,包含所有补丁包
- unity3d利用pano2VR实现全景视图效果
- unity3d学习笔记(十一)-NGUI结合Shader制作小map
- unity3d 在UGUI中制作自适应调整大小的滚动布局控件
- unity3d进程通信利用WM_COPYDATE和HOOK
- Unity3D外包(u3d外包)—就找北京动点软件(我们长年承接U3D外包、Maya、3DMax项目外包)
- iTween基础之Punch(摇晃)
- iTween基础之Shake(摆动)
- Unity3D 5 官方教程:粒子系统 How-Tos
- 关于Unity读取XML的简单学习
- 【Unity优化(转)】Unity+NGUI性能优化方法总结(我项目组的做法)
- Unity3d 加密 Assembly-CSharp.dll (Android平台) 全记录
- Unity3D启动报错的解决方案
- <Unity3D>上下左右 键控制人移动
- unity3d NGUI多场景共用界面制作
- <Unity3D>Unity3D入门篇——第六讲 GUI控件(四)
- <Unity3D>Unity3D入门篇——第五讲 GUI控件(三)
- <Unity3D>Unity3D入门篇——第四讲 GUI控件(二)
- Unity3d中UI开发的MVC模式
- 【unity】AR调研