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

在MySQL中检测utf8损坏的字符

荆利
2023-03-14
问题内容

我有一个数据库,其中有一堆破碎的utf8字符散布在几个表上。字符列表不是很广泛的AFAIK(áéíúóÁÉÍÓÓÚÑñ)

修复给定的表非常简单

update orderItem set itemName=replace(itemName,'á','á');

但是我无法检测到损坏的字符。如果我做类似的事情

SELECT * FROM TABLE WHERE field LIKE "%Ã%";

由于排序规则(Ã= a),我几乎获得了所有字段。到目前为止,所有损坏的字符均以“Ô开头。数据库是西班牙语,因此不使用此特定字符

到目前为止,我得到的损坏字符列表是

á = á
é = é
í- = í
ó = ó
ñ = ñ
á = Á

是否知道如何使此SELECT正常工作?(二进制搜索或类似的东西)


问题答案:

如何使用另一种方法,即来回转换列以获取正确的字符集呢?您可以将其转换为二进制,然后转换为utf-8,然后转换为iso-8859-1或您使用的任何其他格式。有关详细信息,请参见手册。



 类似资料:
  • 我有一些问题在一个TYPO3波兰的网站与字符编码。配置中未设置参数。一切正常(前端和后端),但从数据库导出。当我通过PhpMyAdmin搜索数据库或尝试用数据导出数据库时,所有国际字符都已损坏。 官方页面表示: 无集名UTF8;您的TYPO3 UTF-8设置可能会起作用,但很可能在转换为UTF-8后输入的数据库内容将每个国际字符存储为两个单独的、乱七八糟的latin1字符。 如果您使用phpMyA

  • 我们正在使用Apache Camel(Camel 2.10.3,Java基于DSL)构建一个集成项目。 我们有一个路由,每天从数据库中提取数据(让我们称之为IN_DB),执行一些逻辑并插入另一个数据库(OUT_DB),另一个路由订阅XML数据的JMS主题,执行一些逻辑并全天插入同一个数据库(OUT_DB)。 需求是,当JMS主题连接因任何原因中断时,我们会一直尝试无限期地重新连接,一旦重新连接成功

  • 我修改了一个phonegap插件。Java部分输出一个base64字符串: 然后我将它传递给某个Javascript,然后将字符串发送给服务器。我已经检查了.php文件接收到的字符串,base64字符串是相同的。然而,当我解码base64字符串时,它似乎已损坏。为了更好的示例,将此文本文件的内容复制到解码器中。 注意:当.php文件尝试解码它的数据:image/png;base64在前面时,我只是

  • 问题内容: 我有脏数据。有时它包含像字符这样。我使用这些数据进行查询 对于这个角色我得到 org.hibernate.exception.GenericJDBCException:操作’IN’的排序规则(utf8_bin,IMPLICIT),(utf8mb4_general_ci,COERCIBLE),(utf8mb4_general_ci,COERCIBLE)的非法混合 如何过滤出这样的字符?我

  • 我需要一个快速的Java方法来检查JPEG文件是否有效,或者它是否是一个被截断/损坏的图像。 我试着用几种方法: > 使用javax.imageio库 我正在寻找一个Java替代UNIX程序jpeginfo,它大约快10倍(在我的PC上,大约10个图像/秒)。

  • 我有一个在android平板上运行的跟踪器应用程序。我注意到有些平板电脑会时不时地重新启动。 当我调查这个问题时,发现我得到了“检测到堆栈损坏”错误,然后几毫秒后android VM崩溃。 这些崩溃每5分钟到20分钟发生一次,没有其他模式,然后跟踪应用程序运行和使用GPS和3G。 以下是logcat输出: