mysql - 争论希腊字符

标签 mysql wordpress fonts

我有一个使用 MySQL 数据库的 Wordpress 网站。我想在我的数据库中放入一个希腊单词(Ἀπὸ)。 (注意它在 Stack Overflow 界面中的渲染效果有多好。)如果我这样做,它会很好地进入表格并在 Sequel Pro 中渲染得很好。然而,当我使用一些 PHP 从表中读取它并将其添加到我的 WordPress 网站上的页面时,它会呈现 ???而不是 Ἀπὸ。但是,如果我将单词直接添加到 Wordpress 界面中的页面,它会在界面和渲染页面上很好地显示希腊字符。我看了一下显示???的页面我看到了这一行:

<meta charset='utf-8'>

我相信这应该是渲染这些希腊字符所需的全部。我错过了什么?

编辑

因为有人要求:

CREATE TABLE `scripture` (
  `id` int(6) unsigned NOT NULL AUTO_INCREMENT,
  `translation` varchar(4) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `content` varchar(1200) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `book` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `chapter` int(3) NOT NULL,
  `verse` varchar(7) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `first_verse` int(3) DEFAULT NULL,
  `topic` varchar(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `related1` int(6) DEFAULT NULL,
  `related2` int(6) DEFAULT NULL,
  `related3` int(6) DEFAULT NULL,
  `related4` int(6) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `book_chapter_verse_translation` (`book`,`chapter`,`verse`,`translation`),
  KEY `translation_book_chapter_first_verse` (`translation`,`book`,`chapter`,`first_verse`)
) ENGINE=InnoDB AUTO_INCREMENT=1129 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /rdsdbbin/mysel-5.6.23.R1/share/charsets/

wp-config.php 具有以下内容:

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

我尝试将它们注释掉,并尝试使 DB_COLLATE = utf8_unicode_ci

第二次编辑

解决方案是在查询之前添加以下 PHP 代码:

$mysqli->set_charset("utf8");

最佳答案

this ,寻找“问号”。

特别是,它建议可能需要检查以下内容:

  • 要存储的字节未编码为 utf8/utf8mb4。解决这个问题。
  • 数据库中的列是字符集 utf8(或 utf8mb4)。解决这个问题。
  • 此外,请检查读取期间的连接是否为 UTF-8。

存储数据时出现问题;数据丢失。这可以通过执行 SELECT HEX(col)... 来确认 - 它将全部是 3F,即 ? 的十六进制。

如果仍有问题,请提供SHOW CREATE TABLESHOW VARIABLES LIKE 'char%'以及连接参数。

关于mysql - 争论希腊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41195082/

相关文章:

jquery - 使用 jQuery 调整字体大小

mysql - 仅在另一列具有不同值的情况下查找重复数据

php - 从必须满足条件的多个表中选择

php - wordpress - functions.php - preg_replace - <div<-tags

javascript - 使用 php/Wordpress 中的 google place api 获取附近的位置

java - 如何更改 ListView 项目的字体?

MySQL NATURAL JOIN 3 与父表相关的表,并且对父表有约束

php - joomla - 类别排序存储在哪里?

CSS 100% 高度未按预期缩放

css - 在body标签中设置字体样式,不适用于表格