下载地址
NPinyin.dll
源码
using System.Text;
namespace NPinyin
{
public static class Pinyin
{
public static string ConvertEncoding(string text, Encoding srcEncoding, Encoding dstEncoding);
//拼音 转 汉字
public static string GetChineseText(string pinyin);
public static string GetChineseText(string pinyin, Encoding encoding);
//汉字 转 拼音 首字母(简写)
public static string GetInitials(string text);
public static string GetInitials(string text, Encoding encoding);
//汉字 转 拼音
public static string GetPinyin(string text);
public static string GetPinyin(string text, Encoding encoding);
public static string GetPinyin(char ch);
public static string GetPinyin(char ch, Encoding encoding);
}
}
string[] maxims = new string[] { "事常与人违", "事总在人为" };
Debug.Log("UTF8句子拼音:");
Debug.Log(string.Format("汉字:{0}\n拼音:{1}\n简码:{2}\n",
maxims[0],
NPinyin.Pinyin.GetPinyin(maxims[0]),
NPinyin.Pinyin.GetInitials(maxims[0])));
Debug.Log("GB2312拼音简码:");
System.Text.Encoding gb2312 = System.Text.Encoding.GetEncoding("GB2312");
string s = NPinyin.Pinyin.ConvertEncoding(maxims[1], Encoding.UTF8, gb2312);
Debug.Log(string.Format("药品:{0}\n简码:{1}\n",
s,
NPinyin.Pinyin.GetInitials(s, gb2312)));
char ch = char.Parse("汉");
Debug.Log("汉:" + NPinyin.Pinyin.GetPinyin(ch));
Debug.Log("chang:" + NPinyin.Pinyin.GetChineseText("chang"));
UnityEditor
[MenuItem("Assets/1. 查找中文及改名")]
static void CreateTextureConfig()
{
Caching.ClearCache();
Object[] SelectedAsset = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);
for (int i = 0; i < SelectedAsset.Length; i++)
{
//Assets/洒水大所/萨达/安抚.prefab
string path = AssetDatabase.GetAssetPath(SelectedAsset[i]);
int index = path.LastIndexOf("/");
string newPath = path.Substring(0, index);//Assets/洒水大所/萨达
string name = path.Substring(index + 1, path.Length - index - 1); //安抚.prefab
name = SelectedAsset[i].name; //安抚
if (HasChinese(name))
{
string newName = NPinyin.Pinyin.GetPinyin(name).Replace(" ", "");
Debug.Log("File " + newPath + " " + name + " " + newName);
AssetDatabase.RenameAsset(path, newName);
}
}
Debug.Log("查找中文 改名 结束 ");
AssetDatabase.Refresh();
}
// 中文
static bool HasChinese(string str)
{
return Regex.IsMatch(str, @"[\u4e00-\u9fa5]");
}