[請益] 如何在Google Maps用utf8正確顯示中文
最近在嘗試 "PHP/MySQL搭配Google地圖" 這個範例
https://developers.google.com/maps/articles/phpsqlajax?hl=zh-tw
試到 '使用 PHP 的 DOM 函式來輸出 XML' 這小節就卡關了;
我的問題是,範例裡面說:
"如資料庫包含國際性字元或者您需要強制產生 UTF-8 輸出,
就可以在輸出的資料上使用 utf8_encode"
但確切來說,應該如何使用utf8_encode這個函式呢?
我目前的做法如下:
1. 修改範例檔"phpsqlajax_genxml3.php"的這幾個部份:
(1) 修改前:$dom = new DOMDocument("1.0");
修改後:$dom = new DOMDocument("1.0", "UTF-8");
(2) 修改前:header("Content-type: text/xml");
修改後:header("Content-type: text/xml; charset=UTF-8");
(我把這行移到程式碼開頭附近的<?php下一行,不知有無影響;
另外我也不懂,為什麼範例檔要將header放到程式碼中間的部份,
是否有特殊用意?)
(3) 修改前:$newnode->setAttribute("name",$row['name']);
修改後:$newnode->setAttribute("name", utf8_encode($row['name']));
(address那行亦同)
2. 將phpmyadmin的markers資料表,其中name跟address的校對欄,
都設定為utf8_unicode_ci
這麼做了之後,我從瀏覽器呼叫"phpsqlajax_genxml3.php"
顯示出來的name和address資料都還是亂碼;
另外,我是用notepad++編輯的,而當程式碼是ANSI或UTF-8 without BOM格式時
就是前面的情況,XML輸出是亂碼;
但當程式碼是UTF-8格式時,瀏覽器顯示錯誤如下:
Cannot modify header information - headers already sent by(php程式碼第一行)
不知上面做法是否有誤?
或者還有哪些需要檢查的地方呢?
還請各位指教,謝謝!
==
註:前面貼的中文範例連結,用的是Google Maps Api v2(要用金鑰)
https://developers.google.com/maps/articles/phpsqlajax?hl=zh-tw
英文版的範例連結,用的則是v3版
https://developers.google.com/maps/articles/phpsqlajax_v3
不過就xml輸出的部份,兩者似乎差異不大
提供大家參考
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.250.52.44
※ 編輯: Stelle 來自: 111.250.52.44 (07/10 12:00)
→
07/11 00:25, , 1F
07/11 00:25, 1F
→
07/11 00:25, , 2F
07/11 00:25, 2F
→
07/11 00:26, , 3F
07/11 00:26, 3F
→
07/11 00:26, , 4F
07/11 00:26, 4F
→
07/11 00:27, , 5F
07/11 00:27, 5F
→
07/11 08:04, , 6F
07/11 08:04, 6F
→
07/11 08:05, , 7F
07/11 08:05, 7F
→
07/11 09:18, , 8F
07/11 09:18, 8F
→
07/11 09:18, , 9F
07/11 09:18, 9F
→
07/11 09:19, , 10F
07/11 09:19, 10F
→
07/11 09:19, , 11F
07/11 09:19, 11F
→
07/11 09:20, , 12F
07/11 09:20, 12F
→
07/11 10:30, , 13F
07/11 10:30, 13F
→
07/11 10:30, , 14F
07/11 10:30, 14F
→
07/11 10:30, , 15F
07/11 10:30, 15F
→
07/11 10:31, , 16F
07/11 10:31, 16F
→
07/11 10:31, , 17F
07/11 10:31, 17F
→
07/11 10:32, , 18F
07/11 10:32, 18F
→
07/11 10:32, , 19F
07/11 10:32, 19F
→
07/12 00:29, , 20F
07/12 00:29, 20F
推
07/12 16:11, , 21F
07/12 16:11, 21F
→
07/12 16:11, , 22F
07/12 16:11, 22F
→
07/12 16:12, , 23F
07/12 16:12, 23F
→
07/12 16:12, , 24F
07/12 16:12, 24F
→
07/12 16:12, , 25F
07/12 16:12, 25F
→
07/12 16:12, , 26F
07/12 16:12, 26F