我有一個使用MySQL數據庫的Wordpress網站。我想在我的數據庫中放一個希臘字(Ἀπὸ)。 (請注意,它在Stack Overflow接口中呈現的效果很好。)如果我這樣做,它會進入表格並且在Sequel Pro中呈現得很好。然而,當我使用一些PHP將其從表格中讀出並將其添加到我的Wordpress網站上的頁面時,它會呈現???而不是Ἀπὸ。但是,如果我直接將該詞添加到Wordpress界面中的頁面,則會在界面和呈現的頁面上顯示希臘字符。我看看顯示的頁面?我看到下面這行:Wrangling希臘字符
<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");
什麼是數據庫和Wordpress表的數據庫整理? http://stackoverflow.com/questions/341273/what-does-character-set-and-collation-mean-exactly – markratledge
所以,你的意思是「字符」,而不是「字體」 – Strawberry
數據庫的字符集是UTF- 8 Unicode和排序規則是utf8_unicode_ci。 –