MozTW 討論區
https://forum.moztw.org/

[請教] 如何用PHP讀XML的內容並正確顯示?
https://forum.moztw.org/viewtopic.php?f=13&t=5382
1 頁 (共 1 頁)

發表人:  Nelson [ 2004-12-30, 01:14 ]
文章主題 :  [請教] 如何用PHP讀XML的內容並正確顯示?

各位好,以下是我的XML程式碼
代碼:
<?xml version="1.0" encoding="big5"?>
<software >
   <legend class="系統安全">
      <item></item>
   </legend>
</software>

而我的 PHP 如下
代碼:
$root = $doc->document_element();
$children = $root->child_nodes();
for ($x=0; $x<sizeof($children); $x++)   // 每個 legend
{
   $attribute = $children[$x]->attributes();
   echo $attribute[0]->value;
}


現在問題來了~
明明我在 XML 裡頭的 encoding 是 big5
可是顯示出來之後卻總是亂碼,
但是把瀏覽器的編碼改成 UTF-8 就可以正常顯示,
為什麼會這樣呢 ?

發表人:  member [ 2004-12-30, 01:46 ]
文章主題 : 

你可能要看一下 WEB 伺服器送出來的字碼為何.

發表人:  訪客 [ 2004-12-30, 02:38 ]
文章主題 : 

member 寫:
你可能要看一下 WEB 伺服器送出來的字碼為何.

要怎看呢?

發表人:  Nelson [ 2004-12-30, 11:28 ]
文章主題 : 

Nelson 寫:
各位好,以下是我的XML程式碼
代碼:
<?xml version="1.0" encoding="big5"?>
<software >
   <legend class="系統安全">
      <item></item>
   </legend>
</software>

而我的 PHP 如下
代碼:
$root = $doc->document_element();
$children = $root->child_nodes();
for ($x=0; $x<sizeof($children); $x++)   // 每個 legend
{
   $attribute = $children[$x]->attributes();
   echo $attribute[0]->value;
}


現在問題來了~
明明我在 XML 裡頭的 encoding 是 big5
可是顯示出來之後卻總是亂碼,
但是把瀏覽器的編碼改成 UTF-8 就可以正常顯示,
為什麼會這樣呢 ?


自問自答,那是因為這個函式會把讀到的東西都自動轉成 UTF-8
解法: 用 iconv("UTF-8", "BIG5", 讀到的字串) 轉回來即可.

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/