請問 UTF-8 字元顯示的問題

edited 十月 2013 in PHP新手區
想要請教一下各位大大..
我在Mysql資料庫內已經可以看到如「堃」、「彣」等字了..(用phpmyadmin看的)
但是在使用php5的呼叫函式mysql_fetch_row, mysql_result等都會傳回亂碼....
請問有什麼解決的方法嗎??????
這個問題已經困擾我很久了...
感謝

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=149

評論

  • edited 十一月 2004
    或許可以提供你對資料擷取、顯示過程的程式碼,因為並沒有遇過類似的情形

    *不過也沒有真的去深入一些少見字的顯示問題,因為手邊的工作剛好都很單純

    ├090┤
  • edited 十一月 2004
    嗯...
    首先感謝大大那麼快就回答我的問題
    我的平台是PHP 5.0.2+MySQL 4.1.7-Max

    MySQL 文字編碼: UTF-8 Unicode (utf8)
    (看phpmyadmin的)

    php的configure是
    './configure' '--enable-mbstring' '--enable-mbstring=all' '--with-mysql' '--with-apxs2=/usr/local/apache2/bin/apxs'

    phpinfo為:
    http://tommy400.twbbs.org/test/phpinfo.php

    我寫的測試網頁為
    http://tommy400.twbbs.org/test/test.php

    原始碼如下:

    <?php
    $db = mysql_connect ("localhost","test","test");
    $db = mysql_select_db ("test");

    $sql = "select * from test";

    $result = mysql_query($sql);

    $str = "廖珮彣";

    echo $str."<BR>\n";

    $num = mysql_num_rows($result);

    echo "<HR>資料庫內的文字:<BR>\n";
    for ($i=0;$i<$num;$i++)
    {
    $id = mysql_result($result,$i);
    echo $id."<BR>\n";
    }
    echo "<BR>\n資料庫內的文字結束<BR>\n<HR>";

    if (isset($HTTP_POST_VARS))
    {
    echo "表單上的文字為 ".$HTTP_POST_VARS;
    $sql = "insert into test (id) values ('".$HTTP_POST_VARS."')";
    $result = mysql_query($sql);
    if (!$result)
    {
    echo "<BR>mysql_query error<BR>";
    echo mysql_error();
    echo "<BR>sql = $sql<BR>";
    }
    }

    ?>
    <BR><HR><BR>
    表單<BR>
    <form action='test.php' method=post>
    <input type='text' name='test'>
    <input type='submit' value='送出'>
    </form>
  • edited 十一月 2004
    你要不要試著把資料庫清空後重新將資料加入看看,我目前測試並沒有發現問題;只是我的環境是PHP4+MYSQL4,也建議不需要急著去嘗試PHP5,除非你相當喜歡使用物件導向設計程式。
  • edited 十一月 2004
    嗯...嘗試裝回PHP 4.3.9後.....就出現這個啦...

    Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in /home/wwwroot/test/test.php on line 3

  • edited 十一月 2004
    嗯嗯....
    似乎發現真正的問題點了....
    就是我在網頁上...
    是可以輸入並儲存文字..

    但是有一個大問題
    就是...."珮彣"打不進去...

    接下來...
    試試用phpmyadmin加入一樣的文字
    結果在phpmyadmin看得到..
    但是網頁卻顯示不出來了 ...
  • edited 十一月 2004
    裝回php4時你上面的錯誤是因為你的mysql版本過高.
    但是有個辦法可以解決, 如果你要用php4的話.
    用cmd登入mysql, 然後輸入
    mysql> SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('mypass');

    這樣應該就可以解決了, 詳情請看
    http://dev.mysql.com/doc/mysql/en/Password_hashing.html
    http://dev.mysql.com/doc/mysql/en/Old_client.html
Sign In or Register to comment.