Re: [請益] 似乎是字串編碼問題
看板PHP作者yuleen123 (.......................)時間16年前 (2009/04/06 18:24)推噓2(2推 0噓 1→)留言3則, 2人參與討論串2/2 (看更多)
※ 引述《sarino (soap)》之銘言:
: <HTML>
: <HEAD>
: <META http-equiv="Content-Type" CONTENT="text/php; charset=Big5">
: </HEAD>
: <body>
: <?php
: $i=0;
: $arr=array();
: $arr='測試一';
: ?>
: <FORM ACTION="" METHOD=POST CLASS='Query' NAME="myForm">
: <TABLE border="1">
: <?php
: for($i=0;$i<78;$i++)
: {
: if($i%13==0)
: print"<TR>";
: print"<TD ALIGN=center><INPUT SIZE=1 MAXLENGTH=1 TYPE=TEXT
: value='".$arr[$i]."' </TD>";
上面這一行改成
value='".$arr[$i].( ord($arr[$i]) > 127 ? $arr[$i+1] : "" )."' </TD>";
: if($i%13==0)
: print"</TR>";
這裡加兩行
if( ord($arr[$i]) > 127 )
$i += 1;
: }
: ?>
: </TABLE>
: </FORM>
: </BODY>
: 上面PHP中 $arr內的字串如果是英文或數字 是可以正常呈現的
: 但是 中文則是亂碼 表格的編排也會出錯
: 我猜是編碼問題 可是我在header已經強制是BIG5碼了@@
: 請問各位 我的問題是出在哪裡
php 不像 asp 預設使用 unicode 來存字串
所以把字串放到 array 裡面是 一個 byte 一個 byte 來讀的
但是中文字有兩個 bytes, 就會遇到這個問題
解決的方法就是在輸出的時候要自行判斷是不是中文字
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.41.9.85
推
04/06 19:07, , 1F
04/06 19:07, 1F
推
04/07 11:06, , 2F
04/07 11:06, 2F
→
04/07 11:06, , 3F
04/07 11:06, 3F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章