首頁 php教程 php手册 php substr截断汉字乱码解决办法

php substr截断汉字乱码解决办法

May 25, 2016 pm 04:50 PM
substr 截斷

在php中substr是用来截取字符的,但是有朋友会发现把它来截英文字母是没有任何问题,但是如果截中文时会出现半个汉字乱码了,下面我来介绍一些解决办法.

substr() 函数返回字符串的一部分。

语法:substr(string,start,length)

实例代码如下:

<?php
echo substr("Hello world!", 6);
?>
登入後複製

输出 world!

实例代码如下:echo substr('中国文',1);

结果就是筹码了,后来才知道中文与英文的区别在于内编码了,一个网站这样说到substr函数在截取字符时是按字节来截取的,中文字符在GB2312编码时为2个字节,utf-8编码时为3个字节,所以截取指定长度的字符串时如果截断了汉字,那么返回的结果显示出来便会出现乱码.

解决办法:1、利用mb_substr来截取,代码如下:

<?php
$str = &#39;这样一来我的字符串就不会有乱码^_^&#39;;
echo "mb_substr:" . mb_substr($str, 0, 7, &#39;utf-8&#39;);
//结果:这样一来我的字
echo "<br>";
echo "mb_strcut:" . mb_strcut($str, 0, 6, &#39;utf-8&#39;);
//结果:这样

?>
登入後複製

但是如果要使用mb_substr截取我们需要使用使用mbstring扩展库,如果没有权限的朋友我们就可参考下面函数,代码如下:

<?php
function msubstr($str, $start, $len) {
    $tmpstr = "";
    $strlen = $start + $len;
    for ($i = 0; $i < $strlen; $i++) {
        if (ord(substr($str, $i, 1)) > 0xa0) {
            $tmpstr.= substr($str, $i, 2);
            $i++;
        } else $tmpstr.= substr($str, $i, 1);
    }
    return $tmpstr;
}
?>
登入後複製

            

教程链接:

随意转载~但请保留教程地址★

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
MySQL中如何使用TRUNCATE函數截斷數字以指定小數位數顯示 MySQL中如何使用TRUNCATE函數截斷數字以指定小數位數顯示 Jul 26, 2023 pm 01:51 PM

MySQL中如何使用TRUNCATE函數截斷數字以指定小數位數顯示在MySQL資料庫中,如果我們需要對數字進行截斷以指定小數位數顯示,可以使用TRUNCATE函數。 TRUNCATE函數可以幫助我們實現對數字進行精確的截斷,從而保留指定小數位數的資料。 TRUNCATE函數的語法如下:TRUNCATE(number,decimal_places)其中,numb

PHP傳回字串第一個字元的 ASCII 值 PHP傳回字串第一個字元的 ASCII 值 Mar 21, 2024 am 11:01 AM

這篇文章將為大家詳細講解有關PHP返回字符串第一個字符的ASCII值,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP傳回字串第一個字元的ASCII值引言在php中,取得字串第一個字元的ASCII值是一個常見的操作,涉及到字串處理和字元編碼基礎知識。 ASCII值用於表示字元在電腦系統中的數字值,對於字元比較、資料傳輸和儲存至關重要。過程取得字串第一個字元的ASCII值涉及以下步驟:取得字串:確定要取得ASCII值的字串。它可以是變數、字串常數

PHP傳回一個字串在另一個字串中開始位置到結束位置的字串 PHP傳回一個字串在另一個字串中開始位置到結束位置的字串 Mar 21, 2024 am 10:31 AM

這篇文章將為大家詳細講解有關PHP返回一個字符串在另一個字符串中開始位置到結束位置的字符串,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP中使用substr()函數從字串中擷取子字串substr()函數可從字串中擷取指定範圍內的字元。其語法如下:substr(string,start,length)其中:string:要從中提取子字串的原始字串。 start:子字串開始位置的索引(從0開始)。 length(可選):子字串的長度。如果未指定,則提

Cannot truncate a table referenced in a foreign key constraint - 如何解決MySQL報錯:無法截斷被外鍵約束引用的表 Cannot truncate a table referenced in a foreign key constraint - 如何解決MySQL報錯:無法截斷被外鍵約束引用的表 Oct 05, 2023 pm 03:29 PM

標題:無法截斷被外鍵約束引用的表-如何解決MySQL報錯摘要:在使用MySQL資料庫管理系統時,常常遇到無法截斷被外鍵約束引用的表的問題。本文將詳細介紹這個錯誤的原因,並提供解決方案,包括具體的程式碼範例,幫助讀者更好地理解和解決這個問題。正文:引言在資料庫設計中,外鍵是用來建立不同表之間關聯的重要機制之一。外鍵約束可以保證資料的完整性和一致性。然而,當我

使用PHP函數 'substr' 取得字串的子字串 使用PHP函數 'substr' 取得字串的子字串 Jul 24, 2023 pm 10:13 PM

使用PHP函數"substr"取得字串的子字串在PHP程式中,經常會遇到需要取得字串的部分內容的情況。這時,我們可以使用PHP內建的函數"substr"來實現。本文將介紹如何使用"substr"函數來取得字串的子字串,並提供一些程式碼範例。一、substr函數的基本用法substr函數用於從字串中取得指定長度的子字串。其基本語法如下:substr(

了解PHP中的substr()函數用於截取字串 了解PHP中的substr()函數用於截取字串 Nov 18, 2023 am 11:27 AM

了解PHP中的substr()函數用於截取字串在PHP語言中,substr()函數是一個非常有用的字串處理函數,它可以用來截取指定位置和長度的字串片段。 substr()函數接受三個參數:待截取的字串、截取的起始位置、截取的長度。以下我們將詳細介紹substr()函數的使用方法,並給出具體的程式碼範例。 substr()函數的基本用法substr()函數的

PHP mb_substr 函數無效的處理方案 PHP mb_substr 函數無效的處理方案 Mar 22, 2024 am 09:00 AM

PHPmb_substr函數無效的處理方案在開發PHP應用程式時,常會用到mb_substr函數來截取字串。然而,有時候可能會遇到mb_substr函數無效的情況,主要是因為在不同環境中字元編碼的問題。為了解決這個問題,我們需要對mb_substr函數進行有效的處理。常見的處理方案是透過設定適當的字元編碼和截取長度來確保mb_substr函數能

PHP將字串的首字母轉換為小寫 PHP將字串的首字母轉換為小寫 Mar 21, 2024 pm 02:11 PM

這篇文章將為大家詳細講解有關PHP將字符串的首字母轉換為小寫,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。將PHP字串的首字母轉換為小寫引言在php中,將字串的首字母轉換為小寫是一個常見的操作。可以透過使用內建函數lcfirst()或字串運算子strtolower()來實現。本指南將深入探討這兩種方法,並提供實例程式碼和最佳實務。方法1:使用lcfirst()函數lcfirst()函數專門用於將字串的首字母轉換為小寫,而其餘字元則保持不變。其文法如下:st

See all articles