[請益] 如何在Google Maps用utf8正確顯示中文

看板PHP作者 (今夜星光燦爛)時間12年前 (2012/07/10 11:56), 編輯推噓1(1025)
留言26則, 4人參與, 最新討論串1/1
最近在嘗試 "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
以我接觸google的東西 他基本上都應該都是UTF-8格式了
07/11 00:26, 3F

07/11 00:26, , 4F
如果是我 我會直接用PHP的Function 去拆解XML 檔案
07/11 00:26, 4F

07/11 00:27, , 5F
直接去應用 而不輸入進去資料庫多那步驟
07/11 00:27, 5F

07/11 08:04, , 6F
我只能說,google的範例寫得太囉唆。
07/11 08:04, 6F

07/11 08:05, , 7F
之前在用的時候我把code整理到最後剩沒多少東西。
07/11 08:05, 7F

07/11 09:18, , 8F
k大 不好意思我不太用水球 謝謝你的回應! 如果是編譯器
07/11 09:18, 8F

07/11 09:18, , 9F
的問題 是否代表我應該用用其他編輯軟體試試?另外,不太
07/11 09:18, 9F

07/11 09:19, , 10F
清楚"直接用PHP的Function拆解XML"是什麼意思 因為我資料
07/11 09:19, 10F

07/11 09:19, , 11F
都已經在資料庫裡面了 現在問題是要把東西撈出來~
07/11 09:19, 11F

07/11 09:20, , 12F
也謝謝t大的分享 但我是新手所以只能乖乖照範例跑
07/11 09:20, 12F

07/11 10:30, , 13F
我的意思是 直接用PHP內建 例如simplexml_load_file();
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
如果是剛入門 你就先把資料 他有那資料庫語法把他插入db
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
裡設定沒有設定好編碼XDDD 但是應該在重複檢查一下 別急~
07/11 10:32, 19F

07/12 00:29, , 20F
好的,真的很謝謝k大的細心解釋,我再試試看好了,感謝!
07/12 00:29, 20F

07/12 16:11, , 21F
編輯器問題表示你開文件時的編碼
07/12 16:11, 21F

07/12 16:11, , 22F
notepad++預設就不是big5或utf-8
07/12 16:11, 22F

07/12 16:12, , 23F
dreamweaver中文預設好像是big5
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
ps:eclipse跟netbeans的預設也不是utf8喔…
07/12 16:12, 26F
文章代碼(AID): #1F-wVYAV (PHP)