我与facebook集成,向我发送特殊字符(表情符号等,例如u + 1f600,称为笑脸)。无法将其存储在我的UTF8(不是UTF8mb4)数据库中,那么如何才能使字符串UFT8(不是UTF8mb4)友好?
我无法将数据库转换为UTF8mb4。
答案 0 :(得分:1)
您可以使用简单的正则表达式:
var rx = new Regex(@"[\uD800-\uDBFF][\uDC00-\uDFFF]");
string str = "abcd\U0001D11Eabcd";
str = rx.Replace(str, "?"); // abcd?abcd
如果查看http://en.wikipedia.org/wiki/UTF-16,您会看到非BMP字符由两个16位代码单元组成,其范围在Regex中。