Encryption 为什么我需要使用UTF8转换并在选择字符串中使用AES_解密?

Encryption 为什么我需要使用UTF8转换并在选择字符串中使用AES_解密?,encryption,utf-8,Encryption,Utf 8,我已经测试过在.asp页面上使用AES_解密,结果只显示了????当我使用这个select查询时,并没有使用明文中的解密值 select *,AES_DECRYPT(thepassword,'myencyptkey2018' ) AS passw from personal 但是如果我使用utf8将其与转换一起使用,那么它将显示文本值 select *,CONVERT(AES_DECRYPT(thepassword,'myencyptkey2018' ) USING utf8) AS pass

我已经测试过在.asp页面上使用AES_解密,结果只显示了????当我使用这个select查询时,并没有使用明文中的解密值

select *,AES_DECRYPT(thepassword,'myencyptkey2018' ) AS passw from personal
但是如果我使用utf8将其与转换一起使用,那么它将显示文本值

select *,CONVERT(AES_DECRYPT(thepassword,'myencyptkey2018' ) USING utf8) AS passw from personal
我的mySql数据库设置为使用字符集utf8,我的.asp使用字符集utf8,以及连接字符串,据我所知,我在任何地方都使用utf8。所以我的问题是,为什么我需要使用utf8使用转换? 为什么上面的第一个select代码不起作用?在我的设置中,哪里不使用utf8?如果有的话? 谢谢

这就是您可能希望看到的变量


您可以通过上面的以下命令发布您的数据库结果吗<代码>从信息_schema.columns中选择字符_SET_NAME、排序规则_NAME,其中TABLE_schema='yourdb'和TABLE_NAME='yourtable'
SELECT@@character\u set\u数据库
SELECT@@collation\u数据库
显示像“char%”这样的变量
显示诸如“collation%”之类的变量
只是想确认一下,我用正确的utf-8配置设置了一个varbinary,并且能够插入
AES\u ENCRYPT()
并选择
AES\u DECRYPT()
,而不使用
CAST
CONVERT
,因此,我坚信这是一个配置问题。如果你帮我运行这些命令,我就能看到它。好的。我明天会修好的,我整晚都在工作。谢谢是的,我想这是一个配置问题,因为如果我直接在mySqlworkbench中进行转换,而不是在.asp页面本身,那么我可以不进行强制转换或转换。我明天回来。谢谢,谢谢,等一下。当我运行它时,我得到了这个。排序规则\u连接utf8\u常规\u ci排序规则\u数据库utf8mb4\u常规\u ci排序规则\u服务器utf8mb4\u unicode\u ci