php中文字元截取防亂碼

來源:互聯網
上載者:User
當漢字被截斷時,根據編碼規則他總是要把後邊的其他字元拉過來一起作為漢字解釋,這就是出現亂碼的原因。而值為0x81到0xff與0x00組合始終都顯示為“空” 根據這一特點,在substr的結果後面補上一個chr(0),就可以防止出現亂碼了

先看段代碼
代碼如下:

<?php        $len = 15;           $str = "這個新聞或是文章的標題很長,需要只顯示前面一些字,後面用...來代替";        echo strlen($str)<=$len ? $str : (substr($str,0,$len).chr(0)."...");      ?>


chr(0)相關知識:
null是什麼都沒有,而chr(0)的值是0。表示成16進位是0x00,表示成二進位是00000000
雖然chr(0)不會顯示出什麼,但是他是一個字元。

ps:
如果是UTF-8,UTF-8中的漢字是3個位元組的,截取的長度盡量去3的倍數,以避免亂碼的產生


http://www.bkjia.com/PHPjc/318755.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/318755.htmlTechArticle先看段代碼 複製代碼 代碼如下: ?php $len=15; $str="這個新聞或是文章的標題很長,需要只顯示前面一些字,後面用...來代替"; echostrlen($str)=$l...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.