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

如何解决“字符串值错误”错误?

魏熠彤
2023-03-14
问题内容

在注意到一个应用程序倾向于由于不正确的字符串值错误而丢弃随机电子邮件之后,我经过了并切换了许多文本列以使用utf8列字符集和默认列归类(utf8_general_ci),以便它可以接受它们。这修复了大多数错误,并使应用程序在遇到非拉丁电子邮件时也停止出现sql错误。

尽管如此,某些电子邮件仍然导致程序遇到不正确的字符串值错误: (Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)

内容列是MEDIUMTEXT使用utf8列字符集和utf8_general_ci列排序规则的数据类型。在此列中没有可切换的标志。

请记住,除非绝对必要,否则我不想触摸甚至查看应用程序源代码:

  • 是什么导致该错误?(是的,我知道电子邮件中到处都是随机垃圾,但我认为utf8可以允许)
  • 我该如何解决?
  • 此修复程序可能产生什么影响?

我考虑的一件事是在打开二进制标志的情况下切换到utf8 varchar([some large
number]),但我对MySQL并不熟悉,也不知道这样的修复是否有意义。


问题答案:

"\xE4\xC5\xCC\xC9\xD3\xD8"无效的UTF-8。使用Python测试

>>> "\xE4\xC5\xCC\xC9\xD3\xD8".decode("utf-8")
...
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-2: invalid data

如果您正在寻找避免解码数据库中错误的方法,则cp1252编码(又称“ Windows-1252”或“ Windows Western
European”)是最宽松的编码-每个字节值都是一个有效的代码点。

当然,它不再会理解真正的UTF-8,也不会理解任何其他非cp1252编码,但是听起来您不太在意这一点?



 类似资料:
  • 问题内容: 我们正在尝试使用VScode将代码部署到FRC机器人,但我们不断收到错误消息: 错误:找不到或加载主类 org.gradle.wrapper.GradleWrapperMain 原因:java.lang.ClassNotFoundException: org.gradle.wrapper.GradleWrapperMain 终端进程终止,退出代码为:1 我们发现其他人也遇到了类似的错误

  • 问题内容: 我连接了VPN,以设置广告资源API来获取产品列表,并且效果很好。一旦我从Web服务获得结果并绑定到UI。当我遇到付款错误时,我也将PayPal与我的make Express结帐应用程序集成在一起。我将servlet用于后端过程。谁能说出解决此问题的方法? 问题答案: 首先,你需要从尝试连接的服务器获取公共证书。这可以通过多种方式完成,例如联系服务器管理员并提出要求,使用OpenSSL

  • 我已经在swingeclipse的JTable属性中设计了默认的表模型。所以当我尝试进行计算时,会出现错误……线程“AWT-EventQueue-0”java.lang.ClassCastException:java.lang.String无法转换为java.lang.Integer 在-Integer quantity =((Integer)model . getvalue at(row,2))

  • 我在上传Excel文件大小更1MB时出错。 我试图通过应用以下配置更改来修复它,但没有一个对我有帮助。 在应用程序中尝试配置。yml文件: 我还尝试了以下注释: 最后我做了这个改变: 但是什么都没用!

  • CoreException:无法计算生成计划:插件org.apache.maven.Plugin:3.1或其依赖项之一无法解析:无法读取org.apache.maven的工件描述符。plugins:maven-compiler-plugin:jar:3.1:ArtifactResolutionException:无法将工件org.apache.maven.Plugin.plugins:maven-

  • 我试图添加google_mobile_ads,版本1.0.0通过以下步骤中提到的答案:https://stackoverflow.com/a/67883550/13240914,但当我在调试模式下运行应用程序,我得到这个错误: 有什么方法可以解决这个问题吗?这里是android/app/build.gradlehttps://gist.github.com/wahyu-handayani/025c