如何使用ASP Classic将emoij插入mysql数据库?

时间:2018-10-06 17:15:05

标签: mysql emoji

我正在尝试使用查询字符串向我的MySQL数据库插入表情符号,但我不知道我在做什么错了?

我有一个设置为utf8mb4的MySQL数据库,我可以使用Mysqlworkbench将表情符号插入到表中,并将其显示为真实的表情符号。因此,数据库可以正常工作。而且,如果我只是尝试在.asp页上显示该表情,那么我会显示应有的表情符号。 我已将数据库,表和列设置为utf8mb4_general_ci,对吗?

和我的数据库连接(koppling.asp):

strConn = "driver={MySQL ODBC 5.2 Unicode Driver};server=localhost;uid=xxx;pwd=xxx;database=emojtest;option=3;charset=utf8mb4;" 
set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConn 

向我的insertemoji.asp页发送的查询字符串/变量是这样的。

www.somepage.se/emojitest/insertemoji.asp?text= 

我的insertemoji.asp看起来像这样。

<!--#include file="koppling.asp" -->
<% 
Response.charset="utf-8"

thetext = request.querystring("text")   


sql= "INSERT INTO news (text) VALUES ('"&thetext&"');"
conn.Execute (sql)
response.write thetext (this is showing 😜😀😊😃)
%>

但是表情符号不会存储为表情符号,只能像😜😀😊😃这样存储,如果编码正确,它将是类似\ xF0 \ x9F \ x98 \ x82

那我想念什么?我哪里出问题了?

如果应该将其存储为\ xF0 \ x9F \ x98 \ x82,那么当我将其显示在.asp页上时,如何将其转换/编码为真实的表情符号?

表情符号应该如何存储在数据库中?

  1. 应该像是可见的真实表情符号吗?

  2. 或者像这样ðŸ〜œðŸ〜€ðŸ〜ŠðŸ〜ƒ

  3. 或者这样的\ xF0 \ x9F \ x98 \ x82


已解决

我终于解决了这个问题,我使用了MySQL ODBC 5.2 Unicode驱动程序,当我改用MySQL ODBC 3.51驱动程序时,它就起作用了!

1 个答案:

答案 0 :(得分:0)

,当Mojibaked成为😜😀😊😃。这是因为混淆了F09F989CF09F9880F09F988AF09F9883十六进制,在utf8mb4中将其视为Emoji,但latin1却使它变得乱码。

要查看代码中可能出了什么问题,请参见Trouble with UTF-8 characters; what I see is not what I stored