我有一個MySQL數據庫表,我存儲地址,包括Norwegain地址。爲什麼unicode不能在我的MySQL表中工作?
CREATE TABLE IF NOT EXISTS `addresses` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`street1` varchar(50) COLLATE utf8_danish_ci NOT NULL,
`street2` varchar(50) COLLATE utf8_danish_ci DEFAULT 'NULL',
`zipcode` varchar(10) COLLATE NOT NULL,
`city` varchar(30) COLLATE utf8_danish_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `index_store` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
現在,這張表還是很好,直到我搞砸了,意外地設置了所有城市='測試'。 Luckilly我有另外一張名爲helper_zipcode
的表。此表包含挪威的郵政編碼和城市。
因此,我更新了addresses
表,其中數據來自helper_zipcode
。
不幸的是,在前端,Bodø
等城市現在顯示爲Bod�
。
所有æ ø å
現在顯示爲� � �
(但他們在數據庫中看起來很好)。
我使用HTML 5,所以我的頭看起來像這樣:
<!DOCTYPE HTML>
<head>
<meta charset = "utf-8" />
(...)
這已經不是我第一次和Unicode的鬥爭。
在數據庫中存儲unicode字符(來自歐洲)的seceret和從數據庫中檢索時顯示相同的方式是什麼?
「helper_zipcode」表的字符集是什麼? – Spudley 2011-05-06 12:48:10
出於興趣,如果您將瀏覽器編碼從自動檢測更改爲UTF-8或Unicode,會發生什麼情況?試圖確定它的數據庫或Web瀏覽器是否是錯誤的。 – 2011-05-06 12:49:35
'SET NAMES utf8;'(或'mysql_set_charset()'或任何數據庫庫必須提供來定義連接的字符集)可能就是這樣。 – 2011-05-06 12:59:22