unity截取显示微信昵称后,出现异常Error: UTF-16 to UTF-8 conversion failed because the input string is invalid,原因是截取字符串刚好截到了表情后面,解决思路是从截取到的索引向前遍历,找第一个不是utf16编码的字符,然后显示。utf16编码判断代码如下:
//字符是否为utf16编码格式
public static bool IsUTF16(char c)
{
bool result = false;
// 判断引导字节是否在UTF-16有效范围内
if ((c & 0xF800) == 0xD800)
{
// 判断主体字节是否在UTF-16有效范围内
if ((c & 0xFC00) == 0xDC00)
{
result = true;
}
}
return result;
}
文心一言牛