1. 程式人生 > >字元擷取 支援UTF8/GBK

字元擷取 支援UTF8/GBK

function _strcut($string, $length,$dot = '...') {
        $string = trim($string);        
        if($length && strlen($string) > $length) {   
            //截斷字元   
            $wordscut = '';   
            if(strtolower('utf-8') == 'utf-8') {           
                //utf8編碼   
                $n
= 0; $tn = 0; $noc = 0; while ($n < strlen($string)) { $t = ord($string[$n]); if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { $tn = 1; $n
++; $noc++; } elseif(194 <= $t && $t <= 223) { $tn = 2; $n += 2; $noc += 2; } elseif(224 <= $t && $t < 239) { $tn
= 3; $n += 3; $noc += 2; } elseif(240 <= $t && $t <= 247) { $tn = 4; $n += 4; $noc += 2; } elseif(248 <= $t && $t <= 251) { $tn = 5; $n += 5; $noc += 2; } elseif($t == 252 || $t == 253) { $tn = 6; $n += 6; $noc += 2; } else { $n++; } if ($noc >= $length) { break; } } if ($noc > $length) { $n -= $tn; } $wordscut = substr($string, 0, $n); } else { for($i = 0; $i < $length - 1; $i++) { if(ord($string[$i]) > 127) { $wordscut .= $string[$i].$string[$i + 1]; $i++; } else { $wordscut .= $string[$i]; } } } $string = $wordscut.$dot; } return trim($string); }

相關推薦

字元擷取 支援UTF8/GBK

function _strcut($string, $length,$dot = '...') { $string = trim($string); if

javascript substring 字元擷取(支援中文)程式碼

substring() 方法用於提取字串中介於兩個指定下標之間的字元,擷取英文字串很簡單直接substring(0,url.length),如果是中文就str.charcodeat(i)>255判斷字元編碼是否是中文漢字編碼了。*/ var url ='http://w

php實現gbk和uft8編碼中英文字元擷取函式的應用

<?php/*utf-8、gb2312都支援的漢字擷取函式cut_str(www.3ppt.com字串, 擷取長度, 開始長度, 編碼);編碼預設為 utf-8開始長度預設為 0*/function cut_str($string, $sublen, $start =

修改apache設定,支援UTF8GBK

原本將apache預設設定成強制GBK編碼解釋網站,使得後來安裝UTF8的網站程式碼時出現亂碼的情況! 解決方法,修改/etc/httpd/conf/httpd.conf 檔案,將其中AddDefaultCharset行註釋掉(前面加#)。 儲存後重新啟動apache:/usr/sbin/apachectl

utf8 gbk 互轉

bst encoding urn sta function str public log odi public static function utf8_to_gbk($utfstr) { return iconv("utf-8", "gbk//IGNOR

php utf8 gbk 數組 互轉

bsp 直接 each 記錄 sel 工作 都是 cnblogs 裏的 這些都是工作中常用的 前幾年寫過 但沒有記錄的習慣,後邊有要用到麻煩,現在記錄下 以後直接拿來用 數組裏的 utf8_to_gbk 方法 是上一篇寫的 直接調用 public static

javac編譯錯誤: 編碼UTF8/GBK的不可映射字符

源文件 方法 映射 ext ans nbsp 編碼 ava 不可映射字符 Linux下為UTF-8編碼,javac編譯gbk編碼的java文件時,容易出現“錯誤: 編碼UTF8的不可映射字符” 解決方法是添加encoding 參數:javac -e

Linux命令集錦之·字元擷取命令

時間:2018-11-15 記錄:byzqy 字元擷取命令: cut、printf、awk、sed cut $ cut [選項] 檔名 選項: -f 列號:提取第幾列; -d 分隔符:按照指定分隔符分割列; 示例: $ cut -f 2 student.txt # 提取stude

php中文字元擷取無亂碼,php內建函式substr、mb_substr、mb_strcut 比較

mb_strcut(str, start,length) 按位元組來擷取 1個漢字就3個位元組   1個英文就2個位元組 示例:mb_strcut(‘字串php中文字元擷取無亂碼’, 0,10)輸出結果為:“字串”這3個漢字,無亂碼。  mb_s

Mysql支援UTF8-mb4

感謝https://www.2cto.com/database/201405/303550.html分享 以下是原文摘抄   廢話不多說,相信看到這裡的看客已經看過很多配置檔案的設定方法。但是問題還是沒有解決。本文就詳細記錄一下我的解決方法吧。 我的環境:mysql5.6+python2.7

oracle字元擷取函式語法完整版

1)substr函式格式 (俗稱:字元擷取函式) 格式1: substr(string string, int a, intb); 格式2:substr(string string, int a) ; 解釋: 格式1: 1、string 需要擷取的字串

Linux基礎學習之Shell程式設計——字元擷取命令相關——printf、cut、awk、sed

  一、字元擷取命令之cut命令 1、字元擷取命令有哪些? grep  cut    printf(嚴格來說不算)   awk   sed  命令 2、grep 是在檔案當中提取符合條件的行  

C# winForm utf8 gbk 相互轉碼小工具

程式碼大多來源於網路 開發工具:vs2017 專案檔案: 連結:https://pan.baidu.com/s/1OVrAL5DjhDJEJGVAX7m29Q 提取碼:67lj 介面: 程式碼: using System; using System.IO; using System.T

預設支援utf8編碼的mysql docker映象

其他人都是不正確的 使用mysql容器映象可以很快速的執行mysql,免去了傳統的虛擬機器安裝方式的繁瑣配置。但是使用官方的mysql映象,你會遇到中文亂碼的問題,原因是官方映象的字符集預設值不是utf8。這時候你去google,會找到一些文章,如這個哥們的,但是你按照他的做法,還是會亂碼,這時候你

中文字元擷取亂碼問題

又是非Unicode老系統問題,當有中文時,擷取就成問題,原因是中文佔兩位元組,而英文只佔一個位元組,而在老R3系統中C型別只佔一個位元組。思路:將字元統一轉換成Unicode後擷取DATA: s TYPE string.s = '1a的的的b1才才才餓餓餓d1是是是e1哦哦哦'.WRITE:/ s .WRI

在Windows的CMD中如何設定支援UTF8編碼

這個問題很多人開始都會不知道,當然包括曾經的我,當用到的時候,只好求助於偉大的股溝和度娘了。網上有設定的方法,但說明確不夠詳細系統,說設定字型為:Lucida Console。問題是,在預設方式下,只有點陣字型,哪有什麼Lucida Console。所以,在自己成功設定後,拿

中文字元編碼簡介 GB2312/GBK/GB18030/BIG5

2 GBKGB2312-80僅收漢字6763個,這大大少於現有漢字,隨著時間推移及漢字文化的不斷延伸推廣,有些原來很少用的字,現在變成了常用字,例如:朱鎔基的“鎔”字,未收入GB2312-80,現在大陸的報業出刊只得使用(金+容)、(金容)、(左金右容)等來表示,形式不一而同,這使得表示、儲存、輸入、處理都非

[Shell]字元擷取命令:cut, printf, awk, sed

【cut命令】   cut [選項] 檔案     -f 列號 ( --field 提取第幾列 )     -d 分隔符 ( --delimiter 按照指定分隔符分割列 )   vi user.txt   ( 行間分隔符為製表

thinkphp字元擷取函式msubstr()

ThinkPHP有一個內建字元擷取函式msubstr()如下: msubstr($str, $start=0, $length, $charset=”utf-8″, $suffix=true)  $str:要擷取的字串  $start=0:開始位置,預設從0開始  $len

php字元擷取之類的

一、中文擷取:mb_substr()mb_substr( $str, $start, $length, $encoding ) $str,需要截斷的字串 $start,截斷開始處,起始處為0 $len