直接上代码
/// <summary>
/// 判断文本中是否含有Emoji表情
/// </summary>
/// <returns></returns>
private bool ContainsEmoji(string source)
{
int len = source.Length;
bool isEmoji = false;
for (int i = 0; i < len; i++)
{
char hs = source[i];
if (0xd800 < hs && hs <= 0xdbff)
{
if (source.Length > 1)
{
char ls = source[i + 1];
int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
if (0x1d000 < uc && uc <= 0x1f77f)
return true;
}
}
else
{
if (0x2100 <= hs && hs <= 0x27ff && hs != 0x263b)
{
return true;
}
else if (0x2B05 <= hs && hs <= 0x2b07)
{
return true;
}
else if (0x2934 <= hs && hs <= 0x2935)
{
return true;
}
else if (0x3297 <= hs && hs <= 0x3299)