討論
Home
›
PHP新手區
登入
·
Register
你好, 新朋友!
點下面的按鈕可以加入我們!
登入
申請加入
Categories
Recent Discussions
分類
7.2K
All Categories
31
Flex & Flash
206
Javascript
2.5K
PHP新手區
63
中文化發表區
296
伺服器環境
39
虛擬主機
153
資料庫
31
個人資訊管理
1K
內容管理系統
20
Drupal
939
XOOPS
79
其他
54
原創軟體分享區
479
商業與就業
124
問題與建議
211
客戶關係管理與電子報
52
數位學習平台
266
程式架構
170
CakePHP
29
Zend Framework
1
Laravel
529
群組軟體
422
egroupware
127
聚會與活動
35
PHPConf TW
24
討論區系統
7
Vanilla Forums
16
認證討論區
13
財會商管
408
進階PHP討論
14
PEAR&PECL
4
版本控制
64
程式編輯器
221
開放原始碼專案報導
200
閒聊
222
電子商務
49
Magento
16
PrestaShop
本討論參與人
七月 2009
280
七月 2009
SoltyRain
七月 2009
thisismyph
七月 2009
sam0228
PHP編碼big5 與 utf8
thisismyph
七月 2009
edited 十月 2013
in
PHP新手區
我上網找了很多資料
總算把我的php編碼搞定
包括mysql & apache 都依照網路上的設定了
一般網頁上的中文也可以正常顯示了
可是今天我寫了下面的程式碼
<?PHP
$output =`dir /w`
echo "<pre>$output</pre>"
?>
正常會顯示我目錄下的所有檔案
但是我秀出來的 如果有中文 會有亂碼
當我改成big5
就可以正常顯示 但是原本的網頁就會亂碼了
請問這一部份我該怎麼設定呢?
原始討論:
http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=4290
Share on Facebook
Share on Twitter
評論
sam0228
七月 2009
edited 七月 2009
不預設編碼
由html的header處理
Share on Facebook
Share on Twitter
thisismyph
七月 2009
edited 七月 2009
我的PHP碼如上
如果用utf8編碼
會出現這樣畫面
中文
�Ϻа� C �����ϺЬO os
�ϺаϧǸ�: C414-1342
C:\AppServ\www ���ؿ�
[.] [..] [appserv] [cgi-bin]
counter.txt demo0401.php demo0403.php index.php
index_.php index_backup.php [nbproject] phpinfo.php
[phpMyAdmin]
7 ���ɮ� 6,044 �줸��
6 �ӥؿ� 101,574,496,256 �줸�եi��
如果用BIG5編碼
會出現這樣畫面
銝剜�
磁碟區 C 中的磁碟是 os
磁碟區序號: C414-1342
C:\AppServ\www 的目錄
[.] [..] [appserv] [cgi-bin]
counter.txt demo0401.php demo0403.php index.php
index_.php index_backup.php [nbproject] phpinfo.php
[phpMyAdmin]
7 個檔案 6,044 位元組
6 個目錄 101,574,496,256 位元組可用
我想要都使用utf8的編碼
免的遇到"許、功、蓋"等字出現問題
但是執行運算元的秀出來的中文似乎是big5,所以都會出現亂碼
請問我該如何決解
Share on Facebook
Share on Twitter
thisismyph
七月 2009
edited 七月 2009
設定header 似乎沒有用
Share on Facebook
Share on Twitter
sam0228
七月 2009
edited 七月 2009
header怎下?
AddDefaultCharset的設定是什麼?
default_charset的設定又是什麼?
Share on Facebook
Share on Twitter
thisismyph
七月 2009
edited 七月 2009
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
;
<html xmlns="
http://www.w3.org/1999/xhtml">
;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php
echo "功";
$txt=`dir /w`;
echo $txt;
?>
</body>
</html>
Share on Facebook
Share on Twitter
thisismyph
七月 2009
edited 七月 2009
我是如上設定的 不知是否有誤
Share on Facebook
Share on Twitter
sam0228
七月 2009
edited 七月 2009
AddDefaultCharset跟default_charset呢?
Share on Facebook
Share on Twitter
SoltyRain
七月 2009
edited 七月 2009
sam02282大另外問你apache跟php的字元設定是什麼
Share on Facebook
Share on Twitter
sam0228
七月 2009
edited 七月 2009
我只給關鍵字就是希望能自己去google
'問'是解決方法的一種方法
但是'找'卻是解決方法裡更好的一種
Share on Facebook
Share on Twitter
SoltyRain
七月 2009
edited 七月 2009
比較簡單的方法就是用iconv轉碼
<?php echo "功"; $txt=`dir /w`; echo iconv('big5','UTF-8',$txt); ?>
如果這個方法你不行,問題就會出在環境設定上
至少在我的環境下,是正常的
Share on Facebook
Share on Twitter
thisismyph
七月 2009
edited 七月 2009
AddDefaultCharset utf-8
;default_charset = "iso-8859-1"
與
AddDefaultCharset utf-8
default_charset = "iso-8859-1"
結果都一樣
Share on Facebook
Share on Twitter
sam0228
七月 2009
edited 七月 2009
問題在windows是big5編碼
遇到big5必須轉換成UTF-8
php.ini的default_charset可以mark掉
用SoltyRain的方式轉換應該就ok了
Share on Facebook
Share on Twitter
thisismyph
七月 2009
edited 七月 2009
#11
這個方法我試過 也可以執行
只是有人告訴我不用iconv
也可以run
我認為是`dir /w`執行出來的中文是big5編碼的關係
許功蓋跟本就沒關係 因為我的程式碼 跟環境都設定成utf-8
許功蓋也都可正常顯示
網路我找了很多 還是找不到解答
主要都是再說許功蓋 但我的問題不是在許功蓋呀><
Share on Facebook
Share on Twitter
sam0228
七月 2009
edited 七月 2009
1.AddDefaultCharset mark掉
2.apache重啟
3.由header決定語系
Share on Facebook
Share on Twitter
SoltyRain
七月 2009
edited 七月 2009
其實我比較想了解的是...
你不想用iconv的理由是?或許這才是解決問題的重點
Share on Facebook
Share on Twitter
thisismyph
七月 2009
edited 七月 2009
#15
測試後還是沒用
#16
我本來是用iconv
可是我再別的地方問,有人可以不用iconv
就達到這樣的效果
如果大大也是不用iconv 就有這樣的效果
能否提供我 你環境的設定
php.ini httpd.conf
Share on Facebook
Share on Twitter
280
七月 2009
edited 七月 2009
系統肉腳插一下話
看你的問題,個人解讀是這樣
同一個頁面,有 BIG5 編碼的字,同時有 UTF-8 編碼的字
所以不管你切換那種編碼顯示
都會有一種字是亂碼
如果是這樣的話
這是正常的,因為編碼本來就不一樣
知道的是,你想要的最後結果是 UTF-8 顯示
所以你使用 iconv 將 BIG5 轉 UTF-8
現在你想要不使用 iconv
想靠資料庫輸出的編碼設定達到這個效果
如果是這樣的話
系統的部份我不知道
但是,就我個人的經驗來說
不管資料庫的編碼格式為何
如果你 insert 的資料是 BIG5 的編碼
那讀出來的就是 BIG5
如果你想要的是 insert BIG5 但讀出顯示時想要靠系統設定,轉成 UTF8
光靠系統設定可不可以達到這個效果不知道
但個人是認為不太可能!
Share on Facebook
Share on Twitter
SoltyRain
七月 2009
edited 七月 2009
280..事實上他是要外部執行system('dir/w')
但問題在於WAMP環境本質就不是utf8
跟資料庫應用沒關係 =.=
PS.LAMP就不會有這些問題,或許你該問問那個人他的環境與設定
對了,如果真有這樣神奇的windows設定法不妨分享一下,聽起來真的很妙
Share on Facebook
Share on Twitter
280
七月 2009
edited 七月 2009
重看了一下問題
確認過後
不好意思,搞錯問題的方向
新了解的問題是!
thisismyph 想要做一個目錄 list
遇到中文檔名
顯示有問題
小弟個人認為
想不使用iconv轉碼應該是不可能
我想這應該是作業系統的問題
sam0228 大 跟 SoltyRain 大的一些系統設定建議
沒用我想應該也是正常的
因為不管 headre 或是 php.ini 或是 apache 設定等
他都不是檔案管理系統
我想應該只有檔案管理系統的語系設定才有用吧
例如:
以 XP 這作業系統來說
可以使用日文檔名,簡體字檔名.....
是因為 XP 的檔案管理系統是支援 Unicode 編碼
所以假設 thisismyph 是使用不支援 Unicode 的檔案管理系統
他取到的檔名編碼就一定就是 big5
所以建議方向上應該是朝檔案管理系統的編碼設定著手
系統肉腳,不保證正確,參考就好!!
PS.確實如 SoltyRain 大所說的
不使用 iconv 轉碼的理由是??
如果需求只是要不使用 iconv
是有人自寫 big5 轉 utf8 的函數
如果只是不想使用 iconv 轉的話
Share on Facebook
Share on Twitter
thisismyph
七月 2009
edited 七月 2009
謝謝各位
我也有上國外的網站去問
如同上面幾位大大所說
是os的問題
如果我的os 安裝時是utf8
就沒有這問題
linux我沒摸過
但我的windows xp的執行運算元跑出的是big5沒錯
至於我在別的地方問的那位大大
我猜測他是兩個(網頁編碼和os的編碼)都是用big5
我會再與他確認,如有不用iconv的方法我會再與各位報告
我也太執著不用iconv了-.-
十分感謝各位
Share on Facebook
Share on Twitter
SoltyRain
七月 2009
edited 七月 2009
去藍色小舖閒逛時,看到這個..
截取一段
是我耍笨了~~~~~
我上次跟你說可以的原因是。因為我當時以為你說的是那echo那段。
我的目錄內是沒中文檔名的。所以一直沒注意。
突然看到蔥大寫的那段話。我突然意會到是不是我搞錯地方了。
建立幾個中文檔名上去做測試。果然是我搞錯了。
我這邊是不行的。
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20090722140242XGS&fumcde=FUM20041006152627A9N&rplcnt=16
真的被卡唬爛了...嘖嘖
Share on Facebook
Share on Twitter
Sign In
or
Register
to comment.
Forum Software Powered by Vanilla
評論
由html的header處理
如果用utf8編碼
會出現這樣畫面
中文
�Ϻа� C �����ϺЬO os
�ϺаϧǸ�: C414-1342
C:\AppServ\www ���ؿ�
[.] [..] [appserv] [cgi-bin]
counter.txt demo0401.php demo0403.php index.php
index_.php index_backup.php [nbproject] phpinfo.php
[phpMyAdmin]
7 ���ɮ� 6,044 �줸��
6 �ӥؿ� 101,574,496,256 �줸�եi��
如果用BIG5編碼
會出現這樣畫面
銝剜�
磁碟區 C 中的磁碟是 os
磁碟區序號: C414-1342
C:\AppServ\www 的目錄
[.] [..] [appserv] [cgi-bin]
counter.txt demo0401.php demo0403.php index.php
index_.php index_backup.php [nbproject] phpinfo.php
[phpMyAdmin]
7 個檔案 6,044 位元組
6 個目錄 101,574,496,256 位元組可用
我想要都使用utf8的編碼
免的遇到"許、功、蓋"等字出現問題
但是執行運算元的秀出來的中文似乎是big5,所以都會出現亂碼
請問我該如何決解
AddDefaultCharset的設定是什麼?
default_charset的設定又是什麼?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php
echo "功";
$txt=`dir /w`;
echo $txt;
?>
</body>
</html>
'問'是解決方法的一種方法
但是'找'卻是解決方法裡更好的一種
至少在我的環境下,是正常的
;default_charset = "iso-8859-1"
與
AddDefaultCharset utf-8
default_charset = "iso-8859-1"
結果都一樣
遇到big5必須轉換成UTF-8
php.ini的default_charset可以mark掉
用SoltyRain的方式轉換應該就ok了
這個方法我試過 也可以執行
只是有人告訴我不用iconv
也可以run
我認為是`dir /w`執行出來的中文是big5編碼的關係
許功蓋跟本就沒關係 因為我的程式碼 跟環境都設定成utf-8
許功蓋也都可正常顯示
網路我找了很多 還是找不到解答
主要都是再說許功蓋 但我的問題不是在許功蓋呀><
2.apache重啟
3.由header決定語系
你不想用iconv的理由是?或許這才是解決問題的重點
測試後還是沒用
#16
我本來是用iconv
可是我再別的地方問,有人可以不用iconv
就達到這樣的效果
如果大大也是不用iconv 就有這樣的效果
能否提供我 你環境的設定
php.ini httpd.conf
看你的問題,個人解讀是這樣
同一個頁面,有 BIG5 編碼的字,同時有 UTF-8 編碼的字
所以不管你切換那種編碼顯示
都會有一種字是亂碼
如果是這樣的話
這是正常的,因為編碼本來就不一樣
知道的是,你想要的最後結果是 UTF-8 顯示
所以你使用 iconv 將 BIG5 轉 UTF-8
現在你想要不使用 iconv
想靠資料庫輸出的編碼設定達到這個效果
如果是這樣的話
系統的部份我不知道
但是,就我個人的經驗來說
不管資料庫的編碼格式為何
如果你 insert 的資料是 BIG5 的編碼
那讀出來的就是 BIG5
如果你想要的是 insert BIG5 但讀出顯示時想要靠系統設定,轉成 UTF8
光靠系統設定可不可以達到這個效果不知道
但個人是認為不太可能!
但問題在於WAMP環境本質就不是utf8
跟資料庫應用沒關係 =.=
PS.LAMP就不會有這些問題,或許你該問問那個人他的環境與設定
對了,如果真有這樣神奇的windows設定法不妨分享一下,聽起來真的很妙
確認過後
不好意思,搞錯問題的方向
新了解的問題是!
thisismyph 想要做一個目錄 list
遇到中文檔名
顯示有問題
小弟個人認為
想不使用iconv轉碼應該是不可能
我想這應該是作業系統的問題
sam0228 大 跟 SoltyRain 大的一些系統設定建議
沒用我想應該也是正常的
因為不管 headre 或是 php.ini 或是 apache 設定等
他都不是檔案管理系統
我想應該只有檔案管理系統的語系設定才有用吧
例如:
以 XP 這作業系統來說
可以使用日文檔名,簡體字檔名.....
是因為 XP 的檔案管理系統是支援 Unicode 編碼
所以假設 thisismyph 是使用不支援 Unicode 的檔案管理系統
他取到的檔名編碼就一定就是 big5
所以建議方向上應該是朝檔案管理系統的編碼設定著手
系統肉腳,不保證正確,參考就好!!
PS.確實如 SoltyRain 大所說的
不使用 iconv 轉碼的理由是??
如果需求只是要不使用 iconv
是有人自寫 big5 轉 utf8 的函數
如果只是不想使用 iconv 轉的話
我也有上國外的網站去問
如同上面幾位大大所說
是os的問題
如果我的os 安裝時是utf8
就沒有這問題
linux我沒摸過
但我的windows xp的執行運算元跑出的是big5沒錯
至於我在別的地方問的那位大大
我猜測他是兩個(網頁編碼和os的編碼)都是用big5
我會再與他確認,如有不用iconv的方法我會再與各位報告
我也太執著不用iconv了-.-
十分感謝各位
截取一段
是我耍笨了~~~~~
我上次跟你說可以的原因是。因為我當時以為你說的是那echo那段。
我的目錄內是沒中文檔名的。所以一直沒注意。
突然看到蔥大寫的那段話。我突然意會到是不是我搞錯地方了。
建立幾個中文檔名上去做測試。果然是我搞錯了。
我這邊是不行的。
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20090722140242XGS&fumcde=FUM20041006152627A9N&rplcnt=16
真的被卡唬爛了...嘖嘖