我有一个使用MySQL数据库的Wordpress网站。我想在我的数据库中放一个希腊语单词(Ἀπὸ)。(注意它在堆栈溢出接口中的渲染效果。)如果我这样做了,它会很好地进入表中,并在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 TABLE
、SHOW VARIABLES LIKE 'char%'
和连接参数。
关于mysql - 争吵的希腊字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41195082/