【问题标题】:Uncategorized SQL Exception while trying to save a name field尝试保存名称字段时出现未分类的 SQL 异常
【发布时间】:2021-09-07 13:34:35
【问题描述】:

我目前在尝试使用 Java 在 DB 中设置名称字段时遇到问题。由于名称来自第三方供应商,我们会在名称字段中获得音符或笑脸等特殊字符(例如 ????)

由于上述原因,数据库在下面抛出异常。 org.springframework.jdbc.UncategorizedSQLException:查询; SQL [] 的未分类 SQLException; SQL状态[HY000];错误代码[1366];不正确的字符串值:列 'name' 的 '\xF0\x9F\x8E\xB6'

我想在字段中设置之前过滤掉这些字符。

请让我知道如何在设置值之前通过正则表达式处理上述问题。

【问题讨论】:

  • 它可能需要在服务器上进行编码配置。
  • 清理...清理数据
  • 如何使用双引号,强制命名? ";)" 并使用 UTF-8/32

标签: java sql database hybris


【解决方案1】:

在保存到数据库之前,您需要检查并从名称字符串中删除一个特殊字符。

这个答案有一个检查和删除特殊字符的代码。

how-to-remove-special-characters-from-a-string

【讨论】:

    【解决方案2】:

    您是否尝试将 charset 设置为 utfmb4,因为它支持 db 级别的特殊字符?

    如果您打算允许使用特殊字符,则可以应用此方法,否则您需要有一种机制在将特殊字符保存到数据库之前将其删除。

    更多详情,您可以查看以下链接

    Charset_in_mysql

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 2021-12-01
      相关资源
      最近更新 更多