看板 PHP 關於我們 聯絡資訊
最近在嘗試 "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)
kuAIpAI:有丟水球給你 要問妳更詳細的問題~ 但是妳沒有回應 囧~ 07/11 00:25
kuAIpAI:就以我看你目前問題 就只是編譯器的編碼問題較大 07/11 00:25
kuAIpAI:以我接觸google的東西 他基本上都應該都是UTF-8格式了 07/11 00:26
kuAIpAI:如果是我 我會直接用PHP的Function 去拆解XML 檔案 07/11 00:26
kuAIpAI:直接去應用 而不輸入進去資料庫多那步驟 07/11 00:27
tkdmaf:我只能說,google的範例寫得太囉唆。 07/11 08:04
tkdmaf:之前在用的時候我把code整理到最後剩沒多少東西。 07/11 08:05
Stelle:k大 不好意思我不太用水球 謝謝你的回應! 如果是編譯器 07/11 09:18
Stelle:的問題 是否代表我應該用用其他編輯軟體試試?另外,不太 07/11 09:18
Stelle:清楚"直接用PHP的Function拆解XML"是什麼意思 因為我資料 07/11 09:19
Stelle:都已經在資料庫裡面了 現在問題是要把東西撈出來~ 07/11 09:19
Stelle:也謝謝t大的分享 但我是新手所以只能乖乖照範例跑 07/11 09:20
kuAIpAI:我的意思是 直接用PHP內建 例如simplexml_load_file(); 07/11 10:30
kuAIpAI:直接去抓取我們要的資料來解析 例如要在地圖上插搓點 07/11 10:30
kuAIpAI:就只要有經緯度 兩個數據應該就可以插上一個搓點~ 07/11 10:30
kuAIpAI:如果是剛入門 你就先把資料 他有那資料庫語法把他插入db 07/11 10:31
kuAIpAI:在用 資料庫連線把資料撈出來 二選一 因為通常是資料庫 07/11 10:31
kuAIpAI:比較容易遇到 編碼問題~ 因為你描述的我還是猜不太中是哪 07/11 10:32
kuAIpAI:裡設定沒有設定好編碼XDDD 但是應該在重複檢查一下 別急~ 07/11 10:32
Stelle:好的,真的很謝謝k大的細心解釋,我再試試看好了,感謝! 07/12 00:29
RedMapleWing:編輯器問題表示你開文件時的編碼 07/12 16:11
RedMapleWing:notepad++預設就不是big5或utf-8 07/12 16:11
RedMapleWing:dreamweaver中文預設好像是big5 07/12 16:12
RedMapleWing:文件編碼先不對了,你裡面怎麼調編碼都沒用 07/12 16:12
RedMapleWing:至於你編輯器預設文件編碼…就要自己去看了 07/12 16:12
RedMapleWing:ps:eclipse跟netbeans的預設也不是utf8喔… 07/12 16:12