我试图用querystring将emoji插入mysql数据库,但我没有´不知道我做错了什么?
我有一个设置为utf8mb4的mysql数据库,我可以用mysqlworkbench将emoji插入到一个表中,它显示为一个真正的emoji。所以数据库工作正常。如果我只是尝试在一个.asp页面上显示它,那么我就应该显示一个emoji。我已经将数据库、表和列设置为utf8mb4\u general\u 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页面发送querystring/变量,如下所示。
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 😜😀😊😃)
%>
但是emoji不是作为emoji存储的,只有这样 😜😀😊😃
如果编码正确的话,我想应该是这样的
那我还缺什么?我哪里出错了?
如果它应该像\xf0\x9f\x98\x82那样存储,那么当我在.asp页面上显示它时,如何将它转换/编码为真正的emoji?
emoji应该如何存储在db中?
它应该像一个可见的真实表情?
或者像这样ðÿ˜œðÿ˜€ðÿ˜šðÿ˜ƒ
或者像这样\xf0\x9f\x98\x82
已解决
我终于找到了问题所在,我使用了mysql odbc 5.2 unicode驱动程序,当我改为mysql odbc 3.51驱动程序时,它就工作了!
1条答案
按热度按时间7d7tgy0s1#
????
,当被熏制时,变成😜😀😊😃
. 这是因为混淆了十六进制F09F989CF09F9880F09F988AF09F9883
,在utf8mb4中被视为表情符号,但拉丁语1却将其视为胡言乱语。要查看代码中可能出现的错误,请参阅utf-8字符的问题;我看到的不是我储存的