我在spring启动应用程序中遇到一个sql异常 Caused by: java.sql.SQLException: Incorrect string value: '\x92s.","...' for column 'json' at row 1
. 这很可能意味着我从webhook获取的数据是拉丁语-1或windows1252。我确实看到两种撇号 '
以及 ’
. 我的数据库设置为 utf8mb4
.
我觉得这有点奇怪,因为我过去常常从另一个Angular 得到错误。如何签入发送的数据编码?/我怎样才能解决这个问题?
webhook来自typeform。当我通过“testwebhook”发送测试请求时,我看到了各种 \u2019
当我查看chromedev工具中的response header选项卡时,会看到类似的代码。所以这必须是unicode。我有点困惑,为什么mysql会把它解释为拉丁语-1。
当我在保存字符串之前在后端打印它时,我看到它是unicode格式的。为什么?因为以下原因:这个词 collega's
写为 \x63\x6f\x6c\x6c\x65\x67\x65\x61\x27\x73
在unicode中(请参阅此处的转换器),这是 99 111 108 108 101 103 97 39 115
十进制。这就是我得到的。这个 ’
是 \xe2\x80\x99
或十进制 226 128 153
.
当我调试 Mysql.IO.class
我看到字符编码是 WINDOWS-1252
. 那是罪魁祸首,但这一套呢?隐马尔可夫模型。。。不知何故,jdbc驱动程序在 Connectionimpl.class
.
String encoding = null;
if (this.getUseUnicode()) {
encoding = this.getEncoding();
}
1条答案
按热度按时间cclgggtu1#
真 的。。。问题是在我的开发版本中,我没有在url中指定字符编码。然而,我在我的产品构建中做到了这一点。这就是为什么它在生产中工作而不是在开发中。
我需要从我的生产环境中添加查询参数,这些参数是:
useUnicode=true&characterEncoding=utf8
.