java - 检查字符串是否与 mySQL 兼容 UTF-8

标签 java mysql string utf-8 character-encoding

我们有只支持 UTF-8 字符集的旧 mySQL 数据库。 Java 中是否有一种方法可以检测给定字符串是否与 UTF-8 兼容?

最佳答案

public static boolean isUTF8MB4(String s) {
    for (int i = 0; i < s.length(); ++i) {
        int bytes = s.substring(i, i + 1).getBytes(StandardCharsets.UTF_8);
        if (bytes > 3) {
            return true;
        }
    }
    return false;
}

上面的实现看起来最好,但除此之外:

public static boolean isUTF8MB4(String s) {
    for (int i = 0; i < s.length(); ) {
        int codePoint = s.codePointAt(i);
        int bytes = Character.charCount(codePoint);
        if (bytes > 3) {
            return true;
        }
        i += bytes;
    }
    return false;
}

这可能会更频繁地失败。

关于java - 检查字符串是否与 mySQL 兼容 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21866231/

相关文章:

java - 使用@FindBy注释和PageFactory映射动态元素

java - java中存储一键三值应该用哪个集合?

java - 垃圾收集的对象诱饵?

java - 使用 JDBC 创建 mysql 数据库

mysql - 在 zend server 8.0 上设置 wordpress

Java - 向整个网络发送UDP广播,但不向自身发送

php - Mysql表显示不正确

java - 时间选择器整数错误

c - 如何替换文件中特定人物的字符串

Java 小时到分钟 简单转换