当前位置: 首页 > 面试题库 >

检测utf8mb4字符集要求

柯天宇
2023-03-14
问题内容

我们有一个仅支持utf8的mySQL
DB。但是我们得到了一些需要utf8mb4才能存储在mySQL中的数据提要。我们如何检测(在Java中)字符串是否需要utf8mb4字符集?


问题答案:

需要utf8mb4的字符在Java中表示为代理对,并占用2个字符。因此,一种检测它们的简单方法是检查char中字符串的长度是否与代码点的数量相同:

boolean requiresMb4(String s) {
    int len = s.length();
    return len != s.codePointCount(0, len);
}


 类似资料:
  • 我刚刚将我的mysql数据库从utf8转换为utf8mb4,以便支持Emojis,但现在我有一个编码问题。如果我用php打印文本,通常会显示特殊字符,但它们会在数据库中保存为LATIN1ü 我遵循这个指南https://mathiasbynens.be/notes/mysql-utf8mb4 在php中,我在建立连接后设置了这样的字符集 在转换之前,ä被保存为ä,ö被保存为ö等等。 现在它:ü-

  • 问题内容: 我有一个MySQL转储,尝试将其恢复为: 但是,这引发了一个错误: 这是第3231-3233行: 我正在使用MySQL 5.1.69。我该如何解决这个错误? 问题答案: 您的版本不支持该字符集,我相信是它引入的。您应该将mysql升级到用于导出该文件的版本。 然后,错误就很明显了:您在代码中设置了某个字符集,但是您的mysql版本不支持该字符集,因此对此一无所知。 根据https://

  • 问题内容: 和 MySQL中的字符集有什么区别? __ 我已经知道 ASCII , UTF-8 , UTF-16 和 UTF-32 编码;但是我很好奇知道编码组与 MySQL Server中 定义的其他编码类型有什么区别。 使用而不是有什么特别的好处/提议吗? 问题答案: UTF-8是可变长度编码。对于UTF-8,这意味着存储一个代码点需要1-4个字节。但是,MySQL的编码称为“ utf8”(别

  • 如果您想在mysql/mariaDB中添加自定义排序规则,那么对于utf-8字符集,您可以修改/字符集/索引。xml并使用LDML语法扩展字符集: 但是没有名为“utf8mb4”的字符集标记。所以我用name=“utf8mb4”创建了一个,并添加了排序规则/规则标记,在phpmyadmin中,我可以选择新创建的排序规则。但我不能插入四字节字符;我得到了错误 (使用内置的mb4排序规则,我可以做到这

  • 根据文档,ConnectorJ应根据character_set_server变量自动检测字符编码... 然而,据我所知,它总是默认 设置名称latin1而不是设置名称utf8mb4 更新:当我更改my.cnf中的character_set_server值并重新启动我的服务器时,ConnectorJ检测到utf8mb4与预期的完全一样。 当我使用set GLOBAL手动设置值时,ConnectorJ

  • MySQL中的和字符集有什么区别? 我已经知道ASCII、UTF-8、UTF-16和UTF-32编码;但是我很想知道组编码与MySQL Server中定义的其他编码类型有什么区别。 使用而不是有什么特别的好处/建议吗?