【发布时间】:2014-02-23 06:49:07
【问题描述】:
我们有一个只支持 utf8 的 mySQL DB。但是我们得到了一些需要 utf8mb4 来存储在 mySQL 中的数据源。我们如何(在 Java 中)检测字符串是否需要 utf8mb4 字符集?
【问题讨论】:
标签: java mysql string utf-8 utf8mb4
我们有一个只支持 utf8 的 mySQL DB。但是我们得到了一些需要 utf8mb4 来存储在 mySQL 中的数据源。我们如何(在 Java 中)检测字符串是否需要 utf8mb4 字符集?
【问题讨论】:
标签: java mysql string utf-8 utf8mb4
需要 utf8mb4 的字符在 Java 中表示为代理对,占用 2 个字符。因此,检测它们的一种简单方法是检查 chars 中字符串的长度是否与代码点的数量相同:
boolean requiresMb4(String s) {
int len = s.length();
return len != s.codePointCount(0, len);
}
【讨论】: