php實現中文字元的無亂碼截斷(可以在php中解決中文亂碼的方式有)

本文目錄一覽:

這段php代碼的意思?關於中文字串截取無亂碼的方法

?php 

/*

$string 待截取的字元串

$start 截取的起點 數字

$length 截取的長度 數字

原理:逐位元組讀取遍歷原字元串,1個中文佔兩個位元組,所以截取2個作為1個整體,其他的都截取一個

將字元串重新連接返回

*/

function GBsubstr($string, $start, $length) {

    if(strlen($string)$length){

        $str=null;

        $len=$start+$length;

        for($i=$start;$i$len;$i++){

           if(ord(substr($string,$i,1))0xa0){//如果是GB編碼的中文,一次截取2個位元組

               $str.=substr($string,$i,2);

                $i++;

            }else{//否則,一次截取1個位元組

               $str.=substr($string,$i,1);

            }

        }

        return $str.’…’;

    }else{

        return $string;

    }

}

[php]如何在PHP中截取中文字串無亂碼

一年前寫的一個函數。用法與substr一樣,支持中文。您也可以加以改進。

//截取字元串含數,對系統函數的改進,不會將中文變亂。

function mysubstr ($str,$start,$len=0,$cutchar=”…”) {

$str=str_replace(” “,’ ‘,$str);

$str=str_replace(“「”,’「’,$str);

$str=str_replace(“」”,’」’,$str);

$str=str_replace(“—”,’—’,$str);

$str=str_replace(“””,'”‘,$str);

$str=str_replace(”’,”‘”,$str);

$str=str_replace(“”,”,$str);

$str=str_replace(“”,”,$str);

$str=str_replace(“”,”,$str);

$str=preg_replace(“/[\s]+/”,” “,$str);

$tolen=strlen($str);

if(!($start==0 $len=$tolen)){

//為方便操作,先將起始值和長度值轉換為正數

if($start0)$start=$tolen+$start;if($start0)$start=0;if($start$tolen)return “”;

if($len=0)$len=($tolen+$len)-$start;if($len1)return “”;

if($len$tolen)$len=$tolen;

for($i=0;$i$start;$i++){

if(ord(substr($str,$i,1))127){$i++;}

}

$start=$i; //起始位置計算完成

for($k=0;$k$len;$k++,$i++){

if(ord(substr($str,$i,1))127){$i++;$k++;}

}

$len=$k; //長度計算完成

$str=substr($str,$start,$len);

if($start0){$str=$cutchar.$str;}

if($start+$len$tolen){$str.=$cutchar;}

}

$str=str_replace(“”,”,$str);

$str=str_replace(‘”‘,'”‘,$str);

$str=str_replace(“‘”,”’,$str);

$str=str_replace(“”,”,$str);

$str=str_replace(“”,”,$str);

return $str;

}

php 怎麼截取漢字字元串?

?php 

$str = ‘這樣一來我的字元串就不會有亂碼^_^’; 

echo “mb_substr:” . mb_substr($str, 0, 7, ‘utf-8’); 

//結果:這樣一來我的字 

echo “

“; 

echo “mb_strcut:” . mb_strcut($str, 0, 6, ‘utf-8’); 

//結果:這樣 

?

首先

1.確保你的Windows/system32下有php_mbstring.dll這個文件,沒有就從你Php安裝目錄extensions里拷入Windows/system32裡面。

2.在windows目錄下找到php.ini打開編輯,搜索mbstring.dll,找到

;extension=php_mbstring.dll把前面的;號去掉,這樣mb_substr函數就可以生效了

mb_strcut函數功能也可以截取字元串長度,下面實例具體看看區別在哪:

mb_substr();

php關於截取中文字元串的問題

php中文亂碼的原因及解決方法

原因:1.php頁面語言本身的編碼類型不合適,這時候,你直接在腳本中寫的中文肯定是亂碼,不用說資料庫了;

解決方法:選擇’utf8’或者’gb2312’,這樣客戶瀏覽器會自動選擇並出現正確的中文顯示。注意:’utf8’或者’gb2312’都可以正確顯示中文的。

2.資料庫mysql中的編碼類型不正確。

解決方法:創建資料庫的時候,mysql

字符集選擇’utf8’,mysql

連接校對選擇utf8_general_ci,這樣創建的資料庫用來存儲中文肯定沒有問題,

否則,你的中文首先在mysql中就是亂碼,更不要期望它會給你在php頁面中顯示正確。

3.與平時的腳本編輯環境有關。比如,有些內容是自己用word寫的,有些是用記事本寫的,有些用editplus、ultraplus等文本編輯器。有時候就直接在dw中寫中文了,

這樣做不出亂碼才怪呢。

解決方法:盡量用同一種編輯器。如果是拷貝來得既有的內容,建議用ultraplus中的編碼轉換功能把它轉換成utf8或者gb2312。

到底轉換成什麼類型並不重要,關鍵要求你的php

web應用程序中的編碼要一致就行。

4.編程訪問

mysql時,建議添加一行代碼:mysql_query(“set

names

‘gbk'”);

這是解決方法

我沒看懂你貼上來的程序

所以給你一些方法去解決亂碼的問題

希望可以幫得上

如何利用PHP來截取一段中文字元串而不出現亂碼

/*

功能:截取全形和半形混合的字元串以避免亂碼

參數:

$str_cut 需要截斷的字元串

$length 允許字元串顯示的最大長度

*/

function substr_cut($str_cut,$length = 30){

if (strlen($str_cut) ; $length){

for($i=0; $i $length; $i++)

if (ord($str_cut[$i]) ; 128) $i++;

$str_cut = substr($str_cut,0,$i) . “…”;

}

return $str_cut;

}

原創文章,作者:OAIUW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130481.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
OAIUW的頭像OAIUW
上一篇 2024-10-03 23:28
下一篇 2024-10-03 23:28

相關推薦

  • 英語年齡用連字元號(Hyphenation for English Age)

    英語年齡通常使用連字元號表示,比如 “five-year-old boy”。本文將從多個方面探討英語年齡的連字元使用問題。 一、英語年齡的表達方式 英語中表…

    編程 2025-04-29
  • Python字元轉列表指南

    Python是一個極為流行的腳本語言,在數據處理、數據分析、人工智慧等領域廣泛應用。在很多場景下需要將字元串轉換為列表,以便於操作和處理,本篇文章將從多個方面對Python字元轉列…

    編程 2025-04-29
  • Python zipfile解壓文件亂碼處理

    本文主要介紹如何在Python中使用zipfile進行文件解壓的處理,同時詳細討論在解壓文件時可能出現的亂碼問題的各種解決辦法。 一、zipfile解壓文件亂碼問題的根本原因 在P…

    編程 2025-04-29
  • Python學習筆記:去除字元串最後一個字元的方法

    本文將從多個方面詳細闡述如何通過Python去除字元串最後一個字元,包括使用切片、pop()、刪除、替換等方法來實現。 一、字元串切片 在Python中,可以通過字元串切片的方式來…

    編程 2025-04-29
  • Python讀取中文

    Python是一種高級編程語言,被廣泛地應用於各種領域中。而處理中文數據也是其中重要的一部分。本文將介紹在Python中如何讀取中文,為大家提供指導和幫助。 一、讀取中文文件 在P…

    編程 2025-04-29
  • jQuery Datatable分頁中文

    jQuery Datatable是一個非常流行的數據表插件,它可以幫助您快速地在頁面上創建搜索、過濾、排序和分頁的數據表格。不過,它的默認設置是英文的,今天我們就來探討如何將jQu…

    編程 2025-04-29
  • Python爬蟲亂碼問題

    在網路爬蟲中,經常會遇到中文亂碼問題。雖然Python自帶了編碼轉換功能,但有時候會出現一些比較奇怪的情況。本文章將從多個方面對Python爬蟲亂碼問題進行詳細的闡述,並給出對應的…

    編程 2025-04-29
  • Python計算中文字元個數

    本文將從多個方面對Python計算中文字元個數進行詳細的闡述,包括字元串長度計算、正則表達式統計和模塊使用方法等內容。 一、字元串長度計算 在Python中,計算字元串長度是非常容…

    編程 2025-04-29
  • Python中如何判斷字元為數字

    判斷字元是否為數字是Python編程中常見的需求,本文將從多個方面詳細闡述如何使用Python進行字元判斷。 一、isdigit()函數判斷字元是否為數字 Python中可以使用i…

    編程 2025-04-29
  • Python緩存圖片的處理方式

    本文將從多個方面詳細闡述Python緩存圖片的處理方式,包括緩存原理、緩存框架、緩存策略、緩存更新和緩存清除等方面。 一、緩存原理 緩存是一種提高應用程序性能的技術,在網路應用中流…

    編程 2025-04-29

發表回復

登錄後才能評論