部署与本地:使用mysql的部署应用程序与本地应用程序中存储的数据是出乎意料的



我正在开发一个web应用程序,并试图使用asp.net核心3.1存储来自post请求的一些输入数据。

一开始我应该说我使用的是非英语语言输入。

在本地状态下,一切都很好,但当我发布它并尝试将数据存储在MySQL数据库中时,值是出乎意料的(以一些问号的形式(。我想到的第一件事是,也许我使用了不合适的字符集和编码,所以我将编码更改为我在本地中使用的最接近的编码。没用。我甚至分析了HTTP请求,没有任何问题。
然后我尝试使用insert方法直接在phpMyAdmin中插入。工作良好。

本地编码:utf8mb4_0900_ai_ci
远程编码:utf8mb4_unicode_ci

任何帮助都将不胜感激。

连接参数确定客户端中字节的字符集。要正确存储和检索数据,您必须知道字符集并在连接时公布它。

在客户端和服务器之间传输数据时,MySQL将从该字符集转换为为为存储到/从中提取的列定义的字符集。

听起来您为一个客户端正确地建立了字符集,而为另一个客户端错误地建立了。

如果您可以在客户端中提供字符的十六进制,我可以进一步解释。

对于相同的字符集(编码(utf8mb4utf8mb4_0900_ai_ciutf8mb4_unicode_ci是不同的排序规则。字符将在客户端和服务器之间传输,而不需要任何代码转换。然而,由于排序规则不同,比较可能会造成麻烦。

相关内容

最新更新