改变脚本文件编码格式,包括脚本中的中文注释

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

public class EncodingFormatCheck
{

    static void SetEncoding(string filePath)
    {
        // 读取文件内容
        string fileContent = string.Empty;

        using (StreamReader sr = new StreamReader(filePath, Encoding.GetEncoding("gbk")))
        {
            fileContent = sr.ReadToEnd();
        }

        // 将文件内容转换为utf-8编码格式
        byte[] utf8Bytes = Encoding.UTF8.GetBytes(fileContent);

        // 将转换后的内容写入文件
        using (StreamWriter sw = new StreamWriter(filePath, false, Encoding.UTF8))
        {
            sw.Write(Encoding.UTF8.GetString(utf8Bytes));
        }
    }



    static bool IsUtf8(string filePath)
    {
        if (!File.Exists(filePath))
        {
            return true;
        }

        // 读取文件内容
        byte[] bytes = File.ReadAllBytes(filePath);

        int i = 0;
        while (i < bytes.Length)
        {
            if ((bytes[i] & 0x80) == 0x00)
            {
                // 单字节编码,ASCII字符
                i += 1;
            }
            else if ((bytes[i] & 0xE0) == 0xC0)
            {
                // 双字节编码
                if (i + 1 >= bytes.Length || (bytes[i + 1] & 0xC0) != 0x80)
                {
                    return false;
                }
                i += 2;
            }
            else if ((bytes[i] & 0xF0) == 0xE0)
            {
                // 三字节编码
                if (i + 2 >= bytes.Length || (bytes[i + 1] & 0xC0) != 0x80 || (bytes[i + 2] & 0xC0) != 0x80)
                {
                    return false;
                }
                i += 3;
            }
            else if ((bytes[i] & 0xF8) == 0xF0)
            {
                // 四字节编码
                if (i + 3 >= bytes.Length || (bytes[i + 1] & 0xC0) != 0x80 || (bytes[i + 2] & 0xC0) != 0x80 || (bytes[i + 3] & 0xC0) != 0x80)
                {
                    return false;
                }
                i += 4;
            }
            else
            {
                // 不是UTF-8编码
                return false;
            }
        }

        return true;
    }

}

你可能感兴趣的:(改变脚本文件编码格式,包括脚本中的中文注释)