通过ODBC连接检索的表情数据显示为问号 [英] Emoji data retrieved via ODBC Connection appears as question mark

查看:63
本文介绍了通过ODBC连接检索的表情数据显示为问号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从经典ASP页面连接到MySQL版本5.5.50-log。

MySQL数据库设置如下:

  • 数据库字符集:utf8mb4
  • 数据库排序规则:utf8mb4_General_ci

表和字段:

  • 字符集:utf8mb4
  • 排序规则:utf8mb4_General_ci

为了测试,我在表中有数据,其中包含这个字符串:🍔(T_T)é,è,à,ç

这是SQLyog:

中数据的屏幕截图

这是我的测试网页:

	<!DOCTYPE html>
	
	<html lang="en">
		<head>
			<meta charset="utf-8">
			<meta http-equiv="X-UA-Compatible" content="IE=edge">
			<meta name="viewport" content="width=device-width, initial-scale=1.0">
			<title>Test</title>
			<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
		</head>
		<body>
		<p>Pasted directly from database field: 🍔(T_T) é, è, à, ç</p>
		<p>Returned from SQL statement: ?(T_T) é, è, à, ç</p>
		</body>
	</html>

问题不是表情数据不能显示在网页上,因为直接从MySQL粘贴的内容看起来没有问题。问题是,一旦通过ODBC驱动程序从MySQL的SQL Select返回数据,它就不能正确呈现。

我在ASP代码中设置了以下内容:

Response.CodePage = 65001
Response.CharSet = "utf-8"

我尝试过其他变体,例如

Response.CodePage = 1252
Response.LCID = 1060
Response.Charset = "utf-8"

但它们没有什么不同。

我尝试了一系列MySQL ODBC驱动程序-例如

''----------------------
''connection string
''----------------------

Dim oConn
set oConn = Server.CreateObject("ADODB.Connection")
'oConn.Open "DRIVER={MySQL ODBC 5.1 Driver}; Server=localhost; Database=mydb; User=root; Password=testing; Option=3; CharSet=utf8mb4; stmt=SET NAMES 'utf8mb4';"

这不起作用.

我已尝试使用系统DSN,而不是使用这些驱动程序:

  • MySQL ODBC 5.1驱动程序
  • MySQL ODBC 8.0 Unicode驱动程序
  • MySQL ODBC 8.0 ANSI驱动程序

它们都不能解决问题。

我想知道是否有什么方法可以解决这个问题,或者是否基本上没有办法显示使用Classic ASP从MySQL数据库检索到的表情符号数据?

据我所知,根据我在其他地方的阅读,MySQL数据库设置正确,以一种支持存储表情符号的方式,我可以毫无问题地查看存储在数据库中的表情字符,这证实了这一点。只是当我尝试通过经典ASP到MySQL连接将其从数据库中拉出时,表情符号才没有显示。

编辑-ASP页本身另存为UTF-8编码文件:

UTF

除了设置响应并将文件另存为推荐答案-8之外,您可能还需要这样设置页面语言。请注意,它应该位于文件的最顶端,然后才是其他任何内容:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
response.codepage = 65001
response.charset = "utf-8"
%>

我在编码方面做了很多工作,我们的系统有一半是由非UTF文件组成的,正是这里的这段代码使我能够使用UTF-8来实现我自己的功能。

这篇关于通过ODBC连接检索的表情数据显示为问号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆