使用ASP Classic在MySQL中注册表情符号时的问题

问题描述 投票:0回答:1

早上好!

我已经尝试在应用程序中实现表情符号一段时间了,但是我遇到了很多困难。我已经测试了几种Internet解决方案,但没有一个有效。

我将尽我所能详细说明:

  • 我正在使用Classic ASPMySQL版本5.6.40-84.0-log5.6.26-log
  • 该应用程序托管在Plesk Windows上(我尝试在本地运行数据库也是如此。记事本++页面已经在UTF-8UTF8 without BOM中进行了测试。
  • 在HTML <head>中有<meta charset = "utf-8">
  • <form>具有标签accept-charset="UTF-8"
  • ASP具有Response.AddHeader "Content-Type", "text/html;charset=UTF-8"Response.CodePage=65001Response.LCID=1060Response.Charset="utf-8"

现在解决问题:

在两个版本的MySQL中,当我将COLLATE更改为utf8mb4_unicode_*utf8mb4_bin时,它都会自动返回到utf8mb4_0900_ai_ci

在版本[[5.6.40-84.0-log]中,如果我直接在数据库中注册表情符号,它们就像??????????????在版本

5.6.26-log

中,如果我直接向数据库注册,则错误返回:Executing: INSERT INTO `db`.`table` (` emoji`) VALUES ('tion 123 😀😉😙😐🤐 ão'); Operation failed: There was an error while applying the SQL script to the database. ERROR 1366: 1366: Incorrect string value: '\ xF0 \ x9F \ x98 \ x80 \ xF0 \ x9F ...' for column 'emoji' at row 1 SQL Statement: INSERT INTO 'db'. 'Table' ('emoji') VALUES ('tion 123 😀😉😙😐🤐 ão')

在同一版本中,使用

ODBC

连接字符串中的SET NAMES 'utf8mb4'SET NAMES' utf8'在页面的顶部进行注册,将返回以下错误:Microsoft OLE DB Provider for ODBC Drivers error '80004005' [MySQL] [ODBC 3.51 Driver] [mysqld-5.6.22] Incorrect string value: '\ xE7 \ xE3o' for column 'field' at row 1

谢谢!

Google翻译(rsrs)

早上好!一段时间以来,我一直在尝试在应用程序中实现表情符号,但是我遇到了很多困难。我已经测试了几种Internet解决方案,但是没有一个有效。 ...
mysql utf-8 asp-classic collation
1个回答
0
投票
对于表情符号和一些中文,您需要utf8mb4,而不是MySQL中的utf8
© www.soinside.com 2019 - 2024. All rights reserved.