unity 中文 ANSI 转 utf-8

参考

windows 默认 格式 ANSI
在这里插入图片描述
在这里插入图片描述

using UnityEngine;
using UnityEditor;
using System.Text;
using System.IO;

/// <summary>
/// 控制器
/// <summary>
public class EncodeConverEditor
{

    //创建UTF-8代码
    [MenuItem("Assets/Create/C# Script UTF-8", false, 10)]
    static void CreateCodeText()
    {
        // 获取选中的文件夹或文件的路径
        string selectedPath = AssetDatabase.GetAssetPath(Selection.activeObject);

        string className = "NewBehaviourScript";
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.AppendLine(string.Format("using UnityEngine;"));
        stringBuilder.AppendLine();
        stringBuilder.AppendLine(string.Format("/// <summary>"));
        stringBuilder.AppendLine(string.Format("/// 控制器"));
        stringBuilder.AppendLine(string.Format("/// <summary>"));
        stringBuilder.AppendLine(string.Format("public class {0} : MonoBehaviour", className));
        stringBuilder.AppendLine("{");
        stringBuilder.AppendLine();
        stringBuilder.AppendLine();
        stringBuilder.AppendLine("}");
        string codeText = stringBuilder.ToString();

        //string codeText = "using UnityEngine;\r\n\r\npublic class NewBehaviourScript1 : MonoBehaviour\r\n{\r\n\r\n}\r\n";

        File.WriteAllText(selectedPath + $"/{className}.cs", codeText, System.Text.Encoding.UTF8);

        // 刷新Unity资源窗口
        AssetDatabase.Refresh();
    }


    [MenuItem("Assets/2. TO UTF8")]
    static void TOutf8()
    {
        Caching.ClearCache();
        Object obj = Selection.activeObject;
        string rootPath = AssetDatabase.GetAssetPath(obj);


        if (obj != null && obj is TextAsset)
        {
            Toutf8(System.Environment.CurrentDirectory + "/" + rootPath);
        }
        else
        {
            //string filter = "t:Scene t:Prefab t:Texture";
            string filter = "t:Script";
            string[] resFiles = AssetDatabase.FindAssets(filter, new string[] { rootPath });

            for (int i = 0; i < resFiles.Length; i++)
            {
                //"Assets/Resources/Cube (1).prefab"
                resFiles[i] = AssetDatabase.GUIDToAssetPath(resFiles[i]);
                //"Cube (1)" 
                string fileName = System.IO.Path.GetFileNameWithoutExtension(resFiles[i]);

                string path = resFiles[i];
                Toutf8(System.Environment.CurrentDirectory + "/" + path);
            }
        }

        Debug.Log("查找to utf-8 结束 ");
        AssetDatabase.Refresh();
    }


    private static void Toutf8(string assetPath)
    {
        Encoding encoding = Encoding.GetEncoding(936); //ANSI
        string text = File.ReadAllText(assetPath, encoding);

        System.IO.File.WriteAllText(assetPath, text, Encoding.UTF8);

    }

}
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值