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

如何删除MySQL中不适合utf8编码的坏字符?

柳深
2023-03-14
问题内容

我有脏数据。有时它包含像字符这样。我使用这些数据进行查询

WHERE a.address IN ('mydatahere')

对于这个角色我得到

org.hibernate.exception.GenericJDBCException:操作’IN’的排序规则(utf8_bin,IMPLICIT),(utf8mb4_general_ci,COERCIBLE),(utf8mb4_general_ci,COERCIBLE)的非法混合

如何过滤出这样的字符?我使用Java。

谢谢。


问题答案:

可能这会像帮助我一样帮助某人。

public static String removeBadChars(String s) {
  if (s == null) return null;
  StringBuilder sb = new StringBuilder();
  for(int i=0;i<s.length();i++){ 
    if (Character.isHighSurrogate(s.charAt(i))) continue;
    sb.append(s.charAt(i));
  }
  return sb.toString();
}


 类似资料:
  • 问题内容: 我有一个数据库,其中有一堆破碎的utf8字符散布在几个表上。字符列表不是很广泛的AFAIK(áéíúóÁÉÍÓÓÚÑñ) 修复给定的表非常简单 但是我无法检测到损坏的字符。如果我做类似的事情 由于排序规则(Ã= a),我几乎获得了所有字段。到目前为止,所有损坏的字符均以“Ô开头。数据库是西班牙语,因此不使用此特定字符 到目前为止,我得到的损坏字符列表是 是否知道如何使此SELECT正

  • 问题内容: 我有一些来自json文件的文本。在本文中,我应用了UTF8编码,但是该编码器无法识别非标准字符,并且为大写字符,是否有一种方法可以净化我的字符串? 我的功能: 问题答案: 我找到了解决方案。 UTF8采用8位表ASCII表,而UTF16采用16位ASCII表,解决方案很简单,只需将函数修改为:

  • 问题内容: 我在ColdFusion和JSON方面遇到一些问题。我的用户的文件名和其他关键字带有类似字符的字符,当我不得不通过JSON将其传递回时,这让我很痛苦。 当我在变量上使用magic JSON命令时: 被吐出来的角色是 ,这对任何人都没有好处。 我有什么办法可以保护用户的权益? 问题答案: 您需要在CFCONTENT标记中指定字符集。我在没有 字符集的 Google Chrome浏览器中尝

  • 问题内容: 我在从字符串中删除非utf8字符时出现问题,这些字符无法正确显示。像这样的字符0x97 0x61 0x6C 0x6F(十六进制表示) 删除它们的最佳方法是什么?正则表达式还是其他? 问题答案: 使用正则表达式方法: 它搜索UTF-8序列,并将其捕获到组1中。它还与无法标识为UTF-8序列的一部分的单个字节匹配,但不捕获这些字节。替换是捕获到组1中的任何内容。这将有效删除所有无效字节。

  • 问题内容: MySQL 5.6配置 我已手动配置使用。见下文: 从控制台: 应用配置 现在,对于网络应用程序,我在Tomcat的 上面的方法不起作用,并为我提供了以下应用程序。 这里可能出什么问题了?为什么它显示代替? 问题答案: 您可能需要执行以下操作: MySQL Connector / J 5.1.13中的更改(2010-06-24) Connector / J不支持服务器5.5.2和更高版

  • 问题内容: 关闭。 这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 7年前关闭。 我想删除本地用户root的密码。我怎样才能做到这一点?我错误地设置了root用户的密码。这就是为什么phpmyadmin给出错误: 问题答案: 您需要将密码设置为空白。有两种方法: MySQL 命令: 使用命令行工具: